{"componentChunkName":"component---src-templates-post-js","path":"/blog/worst-debug","webpackCompilationHash":"0f979b9b09e9513b4912","result":{"data":{"site":{"siteMetadata":{"keywords":["blog","ubug","tech blog","技术博客","playground"]}},"mdx":{"fields":{"title":"🐛 记录一次最失败的 debug 过程","tips":[],"categories":["code"],"datetime":"2019-08-13 12:04:51","noFooter":false,"description":"出现 bug 非常正常，但是 Debug 的过程中切忌浮躁、自以为是、胡乱猜测，其实你以为的并不对，反而让你一次一次的忽视简单的问题线索。","plainTextDescription":"出现 bug 非常正常，但是 Debug 的过程中切忌浮躁、自以为是、胡乱猜测，其实你以为的并不对，反而让你一次一次的忽视简单的问题线索。\n","author":"Ubug","banner":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='103'%3e%3cpath%20d='M246%201l-1%202c2%206%202%2014%201%2014-2%200-3-6-2-8%201-3-1-2-2%201l-2%201h-2l-2%202-4%205c-2%204-4%207-4%205l-1%201c-1%202-2%202-6%202-5%200-5%200-4-3v-2l-1%202-2%202-1%201c2%202-2%201-5-1l-2-3c1-1-1-6-2-8-3-2-9-1-9%203l-1%201c-1%200-8-10-8-12-1-2-3-4-5-3v5c3%200%207%209%209%2015l1%205h-27l-2-1c-2%200-7%205-6%205l-4%201-5%201-2-1%202-1h-5l-8%201h-3l-4-1-3-1h-1c-1%201-7%202-34%201H63c-12%203-27%204-28%203h-3l-3%201c-2%200-2%200-1-1%202-1%202-1%201-2-3-3-5-2-6%200v2l2%201-18%203H0v64h401V65a425%20425%200%2000-3-37v4h-9c-6-1-8-2-8-3%200-3-3-9-5-13l-5-10-1-6h-60c-52%200-60%200-60%202v1l-1-1c-1-2-2-2-3-1'%20fill='%23573ede'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":3.867069486404834,"src":"/static/682eb074669535f65148587fab97baa0/e3107/banner.jpg","srcSet":"/static/682eb074669535f65148587fab97baa0/9e575/banner.jpg 500w,\n/static/682eb074669535f65148587fab97baa0/79449/banner.jpg 1000w,\n/static/682eb074669535f65148587fab97baa0/e3107/banner.jpg 1280w","srcWebp":"/static/682eb074669535f65148587fab97baa0/80f20/banner.webp","srcSetWebp":"/static/682eb074669535f65148587fab97baa0/7fe04/banner.webp 500w,\n/static/682eb074669535f65148587fab97baa0/d619e/banner.webp 1000w,\n/static/682eb074669535f65148587fab97baa0/80f20/banner.webp 1280w","sizes":"(max-width: 1280px) 100vw, 1280px"}}},"bannerCredit":null,"slug":"/blog/worst-debug","tags":["思考","调试"]},"headings":[{"value":"一、 问题复盘","depth":2},{"value":"1. 反复自以为是的疑问","depth":3},{"value":"2. 坚定不移的相信开发者工具没问题","depth":3},{"value":"3. 胡乱尝试，期待莫名其妙的好","depth":3},{"value":"4. 分不清问题范围","depth":3},{"value":"5. 浮躁调试","depth":3},{"value":"二、 更好的做法","depth":2}],"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst _frontmatter = {\n  \"slug\": \"worst-debug\",\n  \"title\": \"🐛 记录一次最失败的 debug 过程\",\n  \"date\": \"2019-08-13 12:04:51\",\n  \"author\": \"Ubug\",\n  \"description\": \"出现 bug 非常正常，但是 Debug 的过程中切忌浮躁、自以为是、胡乱猜测，其实你以为的并不对，反而让你一次一次的忽视简单的问题线索。\",\n  \"categories\": [\"code\"],\n  \"tags\": [\"思考\", \"调试\"],\n  \"banner\": \"./banner.jpg\"\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"hr\", null), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u60F3\\u5206\\u4EAB\\u7684\\u662F\\u4E00\\u6B21\\u54ED\\u7B11\\u4E0D\\u5F97\\u7684 debug \\u5BFB\\u627E\\u8BB0~\\uFF0C\\u4E0D\\u662F\\u6700\\u50BB\\u7684\\u4E00\\u6B21\\u8C03\\u8BD5\\u7CBE\\u529B\\uFF0C\\u4F46\\u662F\\u627E\\u5230\\u95EE\\u9898\\u6700\\u60F3\\u6454\\u952E\\u76D8\\u7684\\u4E00\\u6B21\\uFF0C\\u5FC5\\u987B\\u590D\\u76D8\\u4E0B~~\")), mdx(\"hr\", null), mdx(\"p\", null, \"\\u8BB0\\u5F55\\u4E00\\u6B21\\u6700\\u5931\\u8D25\\u7684 debug \\u8FC7\\u7A0B\\u3002\"), mdx(\"p\", null, \"\\u56FD\\u5E86 7 \\u5929\\u957F\\u5047\\u56DE\\u5BB6\\u5F52\\u6765\\u540E\\u5C31\\u9047\\u5230\\u5F88\\u591A\\u70E6\\u5FC3\\u4E8B\\uFF0C\\u597D\\u4E0D\\u5BB9\\u6613\\u6765\\u5230\\u5FC3\\u7231\\u7684\\u5DE5\\u4F4D\\u524D\\uFF0C\\u6253\\u5F00\\u7535\\u6E90\\uFF0C\\u64E6\\u62ED\\u952E\\u76D8\\uFF0C\\u6253\\u5F00\\u9879\\u76EE\\uFF0C\\u542F\\u52A8\\u5F00\\u53D1\\u73AF\\u5883....\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \" \\u98D8\\u7EA2\\u4E86~~ \")), mdx(\"p\", null, \"\\u5927\\u610F\\u662F\\u627E\\u4E0D\\u5230\\u67D0\\u4E2A\\u652F\\u6301\\u5E93\\uFF0C\\u653E\\u5230\\u6211\\u73B0\\u5728\\u9A6C\\u540E\\u70AE\\u5C31\\u662F\\u4E24\\u4E0B\\u9F20\\u6807\\u7684\\u95EE\\u9898\\uFF0C\\u5F53\\u65F6\\u5374\\u662F\\u4E00\\u573A\\u75AF\\u72C2\\u7684 debug \\u8FC7\\u7A0B\\u3002\\u73B0\\u5728\\u603B\\u7ED3\\u4E0B\\u6765\\u72AF\\u4E86\\u5F88\\u591A\\u4E0D\\u5E94\\u8BE5\\u7684\\u9519\\u8BEF\\uFF1A\"), mdx(\"h2\", null, \"\\u4E00\\u3001 \\u95EE\\u9898\\u590D\\u76D8\"), mdx(\"h3\", null, \"1. \\u53CD\\u590D\\u81EA\\u4EE5\\u4E3A\\u662F\\u7684\\u7591\\u95EE\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u4E0D\\u5E94\\u8BE5\\u554A\\uFF0C\\u4E4B\\u524D\\u8FD8\\u597D\\u597D\\u7684\\uFF0C\\u6CA1\\u52A8\\u554A~~~\")), mdx(\"p\", null, \"  \\u786E\\u5B9E\\u4EE3\\u7801\\u5728\\u8282\\u524D\\u662F\\u6CA1\\u95EE\\u9898\\u7684\\uFF0C\\u91CD\\u542F\\u540E\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u5F88\\u81EA\\u7136\\u7684\\u4F1A\\u8FD9\\u4E48\\u60F3\\u3002\"), mdx(\"p\", null, \"  \\u4F46\\u662F\\u5B9E\\u9645\\u4E0A\\u5E76\\u4E0D\\u662F\\u5168\\u90E8\\u9519\\u8BEF\\u90FD\\u662F\\u4EE3\\u7801\\u7684\\u95EE\\u9898\\uFF0C\\u4E00\\u4E2A\\u9879\\u76EE\\u5F00\\u53D1\\u8C03\\u8BD5\\u8FC7\\u7A0B\\u4E2D\\u4F9D\\u8D56\\u4E86\\u5F88\\u591A sdk\\u3001\\u672C\\u5730\\u73AF\\u5883\\u7B49\\uFF0C\\u5F88\\u591A\\u90FD\\u662F\\u6709\\u7248\\u672C\\u8981\\u6C42\\uFF0C\\u6BD4\\u5982\\u5355\\u5355\\u5F00\\u53D1 flutter \\u5C31\\u6D89\\u53CA\\u5230 Flutter SDK\\u3001Dart SDK\\u3001Shell\\u3001AS \\u7248\\u672C\\u8981\\u6C42\\u7B49\\uFF0C\\u8FD8\\u5305\\u62EC\\u5B89\\u5353\\u5957\\u4EF6 Android SDK\\u3001support \\u5305\\u3001JDK\\u3001Gradle\\u3001build-tools\\u3001platform-tools\\u7B49\\uFF0C\\u4E00\\u65E6\\u5176\\u4E2D\\u4F9D\\u8D56\\u53D8\\u52A8\\uFF0C\\u53EF\\u80FD\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u81EA\\u52A8\\u66F4\\u65B0\\u8BBE\\u7F6E\\uFF0C\\u4E5F\\u53EF\\u80FD\\u662F\\u81EA\\u5DF1\\u624B\\u52A8\\u5347\\u7EA7\\uFF0C\\u5F88\\u5BB9\\u6613\\u5BFC\\u81F4\\u9879\\u76EE\\u8DD1\\u4E0D\\u8D77\\u6765\\u3002\"), mdx(\"p\", null, \"  \\u6240\\u4EE5\\u4EE5\\u540E\\u5982\\u679C\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u6392\\u9664\\u4E86\\u81EA\\u5DF1\\u7F16\\u5199\\u7684\\u4EE3\\u7801\\u95EE\\u9898\\uFF0C\\u4E00\\u5B9A\\u8981\\u60F3\\u60F3\\u662F\\u4E0D\\u662F\\u67D0\\u4E2A\\u4F9D\\u8D56\\u5347\\u7EA7\\u6216\\u8005\\u4FEE\\u6539\\u4E86\\u3002\"), mdx(\"h3\", null, \"2. \\u575A\\u5B9A\\u4E0D\\u79FB\\u7684\\u76F8\\u4FE1\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u6CA1\\u95EE\\u9898\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u70B9\\u51FB\\u98D8\\u7EA2\\u5230\\u6846\\u67B6\\u4EE3\\u7801\\u4E2D\\uFF0C\\u5FC3\\u60F3\\u8FD9\\u5757\\u81EA\\u52A8\\u751F\\u6210\\u7684\\uFF0C\\u4E0D\\u4F1A\\u6709\\u95EE\\u9898\\u7684\\uFF0C\\u5411\\u4E0A\\u627E\\u627E\\u9519\\u8BEF Stack \\u4E5F\\u6CA1\\u4EC0\\u4E48\\u503C\\u5F97\\u770B\\u7684~~~ \\u5230\\u5E95\\u54EA\\u91CC\\u51FA\\u95EE\\u9898\\u4E86\\u554A\\uFF01\\uFF01\")), mdx(\"p\", null, \"  \\u770B\\u5230\\u98D8\\u7EA2\\u7684\\u65F6\\u5019\\uFF0C\\u95EE\\u9898\\u7684\\u5B9A\\u4F4D\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u81EA\\u52A8\\u751F\\u6210\\u7684\\u76EE\\u5F55\\u91CC\\uFF0C\\u4E0D\\u77E5\\u9053\\u4E3A\\u5565\\uFF0C\\u8111\\u888B\\u91CC\\u9ED8\\u8BA4\\u8FD9\\u5757\\u662F\\u6CA1\\u95EE\\u9898\\u7684\\uFF08\\u5176\\u5B9E\\u70B9\\u8FDB\\u53BB\\u80FD\\u770B\\u5230\\u51FA\\u9519\\u7684\\u5730\\u65B9\\uFF09\\uFF0C\\u6240\\u4EE5\\u6CA1\\u6709\\u4ECE\\u8FD9\\u5757\\u8BE6\\u7A76\\u3002\\u53CD\\u800C\\u66F4\\u52A0\\u786E\\u4FE1\\u662F\\u81EA\\u5DF1\\u7684\\u73AF\\u5883\\u95EE\\u9898\\u4E86\\u3002\"), mdx(\"p\", null, \"  \\u4ECE\\u8FD9\\u4E5F\\u80FD\\u63A8\\u65AD\\u51FA\\u6765\\uFF0C\\u7528\\u7684\\u4E00\\u4E9B\\u6BD4\\u8F83\\u70ED\\u95E8\\u7684\\u6846\\u67B6\\u3001\\u534F\\u4F5C\\u540C\\u4E8B\\u7684\\u8FD0\\u884C\\u4EE3\\u7801\\uFF0C\\u5176\\u5B9E\\u90FD\\u4F1A\\u6709\\u8FD9\\u4E2A\\u95EE\\u9898\\uFF0C\\u800C\\u5F88\\u591A\\u65F6\\u5019\\u8C03\\u8BD5\\u4E5F\\u9ED8\\u8BA4\\u8FD9\\u4E9B\\u4E1C\\u897F\\u6CA1\\u95EE\\u9898\\uFF0C\\u770B\\u6765\\u4EE5\\u540E\\u8FD8\\u662F\\u9700\\u8981\\u4FDD\\u7559\\u4E00\\u4E9B\\u8B66\\u89C9\\u7684\\u3002\"), mdx(\"h3\", null, \"3. \\u80E1\\u4E71\\u5C1D\\u8BD5\\uFF0C\\u671F\\u5F85\\u83AB\\u540D\\u5176\\u5999\\u7684\\u597D\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u80AF\\u5B9A\\u662F\\u4E4B\\u524D\\u5347\\u7EA7\\u7684\\u95EE\\u9898\\uFF0C\\u6211\\u628A\\u5168\\u90E8\\u4F9D\\u8D56\\u4E5F\\u5347\\u7EA7\\u5230\\u6700\\u65B0\\u7684\\uFF0C\\u80AF\\u5B9A\\u6CA1\\u95EE\\u9898~~~\")), mdx(\"p\", null, \"  \\u5728\\u8BA4\\u4E3A\\u662F\\u81EA\\u5DF1\\u7684\\u73AF\\u5883\\u95EE\\u9898\\u4E4B\\u540E\\uFF0C\\u5728\\u4E0D\\u6E05\\u695A\\u95EE\\u9898\\u7684\\u60C5\\u51B5\\uFF0C\\u5C1D\\u8BD5\\u521B\\u5EFA\\u65B0\\u9879\\u76EE\\u6CA1\\u95EE\\u9898\\uFF0C\\u4E0D\\u540C\\u7684\\u65B0\\u9879\\u76EE\\u5F62\\u5F0F\\u4E5F\\u6CA1\\u95EE\\u9898\\uFF0C\\u7136\\u540E\\u5C31\\u5404\\u79CD\\u5347\\u7EA7\\u5230\\u6700\\u65B0\\u7248\\uFF0C\\u82B1\\u4E86\\u5F88\\u591A\\u65F6\\u95F4\\u6765\\u9A8C\\u8BC1\\u54EA\\u4E2A\\u73AF\\u5883\\u914D\\u7F6E\\u7684\\u95EE\\u9898\\uFF0C\\u6700\\u540E\\u5DEE\\u70B9\\u91CD\\u65B0\\u88C5\\u6574\\u4E2A Android \\u5F00\\u53D1\\u73AF\\u5883\\u3002\"), mdx(\"p\", null, \"  \\u8FD9\\u4E9B\\u90FD\\u662F\\u5728\\u5927\\u6982\\u77E5\\u9053\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u4E0D\\u786E\\u5B9A\\uFF0C\\u7136\\u540E\\u80E1\\u4E71\\u5347\\u7EA7\\uFF0C\\u5C1D\\u8BD5\\u4E0D\\u540C\\u7684\\u4F9D\\u8D56\\u7248\\u672C\\uFF0C\\u671F\\u5F85\\u83AB\\u540D\\u5176\\u5999\\u7684\\u597D\\u3002\\u5C31\\u50CF\\u662F\\u4E0B\\u9762\\u7684\\u6F2B\\u753B\\u4F3C\\u7684\\uFF1A\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/53_run_result-321975062b336c5a79d7a15ca2ebd6d3.gif\",\n    \"alt\": \"运行结果\"\n  })), mdx(\"p\", null, \"  \\u770B\\u8D77\\u6765\\u5F88\\u641E\\u7B11\\uFF0C\\u4F46\\u662F\\u6709\\u65F6\\u5019\\u771F\\u7684\\u662F\\u8FD9\\u6837\\u7684\\u3002\"), mdx(\"h3\", null, \"4. \\u5206\\u4E0D\\u6E05\\u95EE\\u9898\\u8303\\u56F4\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u89E3\\u51B3\\u4E0D\\u4E86\\uFF0C\\u53EA\\u80FD\\u641C\\u7D22\\u4E86~~~\")), mdx(\"p\", null, \"  \\u6280\\u672F\\u6808\\u95EE\\u9898\\u5206\\u4E0D\\u6E05\\uFF0C\\u8FD9\\u4E2A\\u9879\\u76EE\\u662F flutter \\u548C Android \\u6DF7\\u5408\\u7684\\uFF0CAndroid \\u90E8\\u5206\\u662F flutter sdk \\u8D1F\\u8D23\\uFF0C\\u6240\\u4EE5\\u641C\\u7D22\\u95EE\\u9898\\u7684\\u5173\\u952E\\u8BCD\\u4E00\\u76F4\\u60F3\\u7684\\u90FD\\u662F flutter + bug\\uFF0C\\u5176\\u5B9E\\u5E76\\u4E0D\\u662F\\uFF0C\\u5728\\u8FD9\\u5757\\u641C\\u7D22\\u4E0D\\u51FA\\u4EFB\\u4F55\\u6709\\u7528\\u7684\\u4E1C\\u897F\\u3002\"), mdx(\"h3\", null, \"5. \\u6D6E\\u8E81\\u8C03\\u8BD5\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u9879\\u76EE\\u8FD9\\u4E48\\u7740\\u6025\\uFF0C\\u5C45\\u7136\\u8FD8\\u51FA\\u73B0\\u8FD9\\u4E2A\\u95EE\\u9898\\uFF0C\\u73B0\\u5728\\u6709\\u4E00\\u4E2A\\u4E34\\u65F6\\u89E3\\u51B3\\u65B9\\u6848\\uFF0C\\u62F7\\u8D1D\\u5230\\u522B\\u7684\\u9879\\u76EE\\u4E0B\\u53EF\\u4EE5\\u5F00\\u53D1\\uFF0C\\u4F46\\u662F\\u6CA1\\u6CD5\\u534F\\u4F5C\\uFF0C\\u4E0D\\u884C\\u53EA\\u80FD\\u6682\\u65F6\\u5148\\u9876\\u7740\\u4E86~~\")), mdx(\"p\", null, \"  \\u8C03\\u8BD5\\u7684\\u8FC7\\u7A0B\\u4E2D\\uFF0C\\u4E00\\u822C\\u7684\\u5C0F\\u95EE\\u9898\\u4E00\\u4E0B\\u80FD\\u770B\\u51FA\\u6765\\uFF0C\\u4E2D\\u7B49\\u95EE\\u9898\\u4E5F\\u5927\\u6982\\u6709\\u601D\\u8DEF\\uFF0C\\u6700\\u62C5\\u5FC3\\u7684\\u8C03\\u8BD5\\u662F\\u4E0D\\u77E5\\u9053\\u54EA\\u91CC\\u51FA\\u9519\\u4E86\\u7684\\u65F6\\u5019\\uFF0C\\u66F4\\u662F\\u82B1\\u4E86\\u5F88\\u591A\\u65F6\\u95F4\\u90FD\\u6CA1\\u6709\\u4EFB\\u4F55\\u5934\\u7EEA\\uFF0C\\u9879\\u76EE\\u8FDB\\u5EA6\\u803D\\u8BEF\\u5F88\\u591A\\uFF0C\\u5BFC\\u81F4\\u5FC3\\u6D6E\\u6C14\\u8E81\\u3002\"), mdx(\"p\", null, \"  \\u8FD9\\u4E2A\\u65F6\\u5019\\u5FC3\\u91CC\\u5C31\\u504F\\u5411\\u4E8E\\u66F4\\u591A\\u6BD4\\u5982\\u6682\\u65F6\\u53EF\\u7528\\u7684\\u65B9\\u6848\\uFF0C\\u53EF\\u80FD\\u4F1A\\u89E3\\u51B3\\u6682\\u65F6\\u7684\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u540E\\u7EED\\u7684\\u5F00\\u53D1\\u80AF\\u5B9A\\u4F1A\\u53D7\\u5230\\u5F71\\u54CD\\u3002\"), mdx(\"h2\", null, \"\\u4E8C\\u3001 \\u66F4\\u597D\\u7684\\u505A\\u6CD5\"), mdx(\"p\", null, \"\\u8C03\\u8BD5 bug \\u5C31\\u50CF\\u662F\\u8C03\\u67E5\\u4E00\\u4E2A\\u6848\\u4EF6\\uFF0C\\u4ECE\\u7EBF\\u7D22\\u5165\\u624B\\uFF0C\\u63A8\\u65AD\\u95EE\\u9898\\u6240\\u5728\\uFF0C\\u800C\\u4E0D\\u662F\\u60F3\\u5F53\\u7136\\u7684\\u8BA4\\u4E3A\\u8C01\\u662F\\u51F6\\u624B\\uFF0C\\u7136\\u540E\\u5211\\u8BAF\\u903C\\u4F9B\\u3002\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u7B2C\\u4E00\\u65F6\\u95F4\\u4ECE\\u6700\\u5F00\\u59CB\\u7684\\u9519\\u8BEF\\u5F00\\u59CB\\u6392\\u67E5\\uFF0C\\u4E0D\\u7528\\u5C4F\\u853D\\u4E0D\\u719F\\u6089\\u7684\\u4EE3\\u7801\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u65E0\\u8BBA\\u662F\\u5F00\\u53D1\\u8005\\u5DE5\\u5177\\u751F\\u6210\\u3001\\u6846\\u67B6\\u7684\\u4EE3\\u7801\\u8FD8\\u662F\\u81EA\\u5DF1\\u7684\\u4EE3\\u7801\\uFF0C\\u90FD\\u7167\\u67E5\\u4E0D\\u8BEF\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5728\\u590D\\u6742\\u4F9D\\u8D56\\u7684\\u73AF\\u5883\\u4E0B\\uFF0C\\u4E0D\\u786E\\u5B9A\\u95EE\\u9898\\u7684\\u65F6\\u5019\\u4E0D\\u8981\\u82B1\\u592A\\u591A\\u65F6\\u95F4\\u5C1D\\u8BD5\\u4E0D\\u786E\\u5B9A\\u7684\\u89E3\\u51B3\\u529E\\u6CD5\\u6765\\u80E1\\u4E71\\u5C1D\\u8BD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u95EE\\u9898\\u6CA1\\u6709\\u601D\\u8DEF\\u7684\\u65F6\\u5019\\u679C\\u65AD\\u8BF7\\u6C42\\u540C\\u4E8B\\u4ECE\\u4E0D\\u540C\\u89D2\\u5EA6\\u63D0\\u4F9B\\u5EFA\\u8BAE\\uFF0C\\u534F\\u52A9\\u8C03\\u8BD5\\uFF1B\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u65E0\\u8BBA\\u82B1\\u591A\\u957F\\u65F6\\u95F4\\uFF0C\\u4FDD\\u6301\\u60C5\\u7EEA\\u7A33\\u5B9A\\uFF0C\\u4E2D\\u65AD\\u4F11\\u606F\\u7B49\\u65B9\\u5F0F\\uFF0C\\u4FDD\\u6301\\u81EA\\u5DF1\\u7684\\u72B6\\u6001\\uFF1B\")), mdx(\"p\", null, mdx(\"figure\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-figure\",\n    \"style\": {}\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"1035px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/40551b3e11ff1593a6736d3f0533700c/28bb1/sherlock.jpg\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"62.54826254826254%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBv/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAc/TOwUAf//EABkQAAIDAQAAAAAAAAAAAAAAAAMQAAExE//aAAgBAQABBQKFHzVbq//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAIDAAAAAAAAAAAAAAAAAAABESAh/9oACAEBAAY/AhbNf//EABoQAQACAwEAAAAAAAAAAAAAAAERMQAQIUH/2gAIAQEAAT8hLw4otJ55qjCw6//aAAwDAQACAAMAAAAQiA//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAwEBPxCn/8QAFREBAQAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8Qh//EABoQAQACAwEAAAAAAAAAAAAAAAERoQAQIXH/2gAIAQEAAT8QAgWCe4hDlKhp1cxxJxl8df/Z')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"来自夏洛克的凝视\",\n    \"title\": \"来自夏洛克的凝视\",\n    \"src\": \"/static/40551b3e11ff1593a6736d3f0533700c/dcf47/sherlock.jpg\",\n    \"srcSet\": [\"/static/40551b3e11ff1593a6736d3f0533700c/fca29/sherlock.jpg 259w\", \"/static/40551b3e11ff1593a6736d3f0533700c/f4507/sherlock.jpg 518w\", \"/static/40551b3e11ff1593a6736d3f0533700c/dcf47/sherlock.jpg 1035w\", \"/static/40551b3e11ff1593a6736d3f0533700c/cd483/sherlock.jpg 1553w\", \"/static/40551b3e11ff1593a6736d3f0533700c/e222b/sherlock.jpg 2070w\", \"/static/40551b3e11ff1593a6736d3f0533700c/28bb1/sherlock.jpg 2560w\"],\n    \"sizes\": \"(max-width: 1035px) 100vw, 1035px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), \"\\n    \", mdx(\"figcaption\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-figcaption\"\n  }, \"\\u6765\\u81EA\\u590F\\u6D1B\\u514B\\u7684\\u51DD\\u89C6\"), \"\\n  \")));\n}\n;\nMDXContent.isMDXComponent = true;"}},"pageContext":{"isCreatedByStatefulCreatePages":false,"id":"d307ef63-3c14-5316-8266-9ca8976cb97f","prev":{"fileAbsolutePath":"D:/ubug/storybook/content/blog/leet-code/biggerK.md","id":"4d20154a-7beb-5e1e-919e-109f5d3212b8","parent":{"name":"biggerK","sourceInstanceName":"blog"},"excerpt":"很常见的一个 Leet-Code 问题，取出无序数组的最大 K 个数，比如【前-k-个高频元素】【数组中的第k个最大元素】。 下面以【前-k-个高频元素】为例写下思考： 方法一：排序截取 最容易想到的一个方法，选最大的，那就从大到小排序后截取前 K 个呗。 这个算法的复杂度主要是排序部分，快排的话平均可以有 O(nlog 2 n)，加上截取部分的复杂度  O(K) 。这样的一个处理方式很简单，但是直觉上就可以认为不是很好的方法，因为大于 k 值的元素不需要比较排序，例如  k =…","fields":{"title":"😋 最大的 K 元素","slug":"/blog/bigger-k","description":"Leet-Code 中常见的一个技巧。","date":"2019-08-21","redirects":null,"datetime":"2019-08-21 19:54:09","categories":["algorithm"],"series":null,"tags":["算法","leet-code"],"status":"online"},"frontmatter":{"published":null,"tags":["算法","leet-code"],"theme":null,"slug":"bigger-k","date":"2019-08-21 19:54:09"},"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst codeStr_347 = \"var topKFrequent = function ([nums, k]) {\\n  return nums.sort().slice(nums.length - k, nums.length)\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_2 = \"var topKFrequent = function ([nums, k]) {\\n  let maxVal = Infinity\\n  let result = []\\n\\n  while(result.length < k) {\\n    let max = -Infinity\\n    let thisCount = 0\\n    for(let i = 0;i < nums.length;i++) {\\n      if(nums[i] == max) {\\n        max = nums[i]\\n        thisCount++\\n      }\\n      if(nums[i] > max && nums[i] < maxVal) {\\n        max = nums[i]\\n        thisCount = 1\\n      }\\n    }\\n    maxVal = max\\n    for(let i = 0;i < thisCount && result.length < k;i++){\\n      result.push(max)\\n    }\\n  }\\n  return result.slice(0, k)\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_3 = \"\\nvar getMid = function(nums, min, max){\\n  // \\u627E\\u51FA\\u76EE\\u6807\\u4E2D\\u4F4D\\u6570\\u548C\\u4EC5\\u8868\\u610F\\u7684\\u6570\\u90FD\\u53EF\\u4EE5\\n  return min + ((max - min) >> 1)\\n  // var mid = min + ((max - min) >> 1)\\n  // var diff = Infinity\\n  // var ind = -1\\n  // for(let i = 0; i< nums.length;i++) {\\n  //   var di = Math.abs(nums[i] - mid)\\n  //   if(di < diff) {\\n  //     ind = i\\n  //     diff = di\\n  //   }\\n  // }\\n  // return nums[ind]\\n}\\n\\nvar topKFrequent = function ([nums, k]) {\\n  var biggerCount = 0\\n  var len = nums.length\\n\\n  // \\u5148\\u8BA1\\u7B97\\u4E00\\u4E2A\\u4E2D\\u95F4\\u503C\\u4F5C\\u4E3A\\u8D77\\u59CB\\u4E8C\\u5206\\u70B9\\n  var min = Infinity\\n  var max = -Infinity\\n  for(let i = 0; i< len;i++) {\\n    min = Math.min(nums[i], min)\\n    max = Math.max(nums[i], max)\\n  }\\n  var midVal = getMid(nums, min, max)\\n\\n  while(true) {\\n    var count = 0\\n    // \\u7EDF\\u8BA1\\u6574\\u4E2A\\u5E8F\\u5217\\u4E2D\\u5927\\u4E8E\\u73B0\\u5728\\u8FD9\\u4E2A\\u4E2D\\u95F4\\u503C\\u7684\\u6570\\u91CF\\n    for(let i = 0; i< len;i++) {\\n      if(nums[i] >= midVal) count++\\n    }\\n    if(count > k) {\\n      // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u591A\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5927\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n      var _midVal = getMid(nums, midVal, max)\\n      if(_midVal == midVal){\\n        // \\u8BA1\\u7B97\\u7684\\u5206\\u5272\\u4E2D\\u4F4D\\u6570\\u76F8\\u540C\\uFF0C\\u8BF4\\u660E\\u65E0\\u6CD5\\u8BA1\\u7B97\\u4E2D\\u4F4D\\u503C\\u4E86\\n        biggerCount = count\\n        break;\\n      }\\n      midVal = _midVal\\n    }\\n    if(count < k) {\\n      // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u5C11\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5C0F\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n      var _midVal = getMid(nums, min, midVal)\\n      if(_midVal == midVal){\\n        // \\u8BA1\\u7B97\\u7684\\u5206\\u5272\\u4E2D\\u4F4D\\u6570\\u76F8\\u540C\\uFF0C\\u8BF4\\u660E\\u65E0\\u6CD5\\u8BA1\\u7B97\\u4E2D\\u4F4D\\u503C\\u4E86\\n        biggerCount = count\\n        break;\\n      }\\n      midVal = _midVal\\n    }\\n    biggerCount = count\\n    if(count == k) {\\n      break;\\n    }\\n\\n  }\\n  // ---------- \\u77E5\\u9053\\u4E86\\u5206\\u5272\\u503C\\n  var resut = []\\n  // ---------- \\u7B49\\u4E8E\\u5206\\u5272\\u503C\\u5F97\\u4E0D\\u80FD\\u5168\\u62FF\\u51FA\\u6765\\n  var midNoNeedCount = biggerCount - k\\n  // ---------- \\u5C06\\u5927\\u4E8E\\u76EE\\u6807\\u503C\\u7684\\uFF0C\\u90E8\\u5206\\u7B49\\u4E8E\\u5206\\u5272\\u503C\\u5F97\\u62FF\\u51FA\\u6765\\n  for(let i = 0; i< len;i++) {\\n    if(nums[i] == midVal && midNoNeedCount-- > 0) continue;\\n    if(nums[i] >= midVal) resut.push(nums[i])\\n  }\\n  return resut\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_4 = \"var findTarget = function(nums, min, max, targetCount){\\n  var mid = min + ((max - min) >> 1)\\n  if(mid == min) return min\\n  if(mid == max) return max\\n  var count = 0\\n  // \\u7EDF\\u8BA1\\u6574\\u4E2A\\u5E8F\\u5217\\u4E2D\\u5927\\u4E8E\\u73B0\\u5728\\u8FD9\\u4E2A\\u4E2D\\u95F4\\u503C\\u7684\\u6570\\u91CF\\n  for(let i = 0; i< nums.length;i++) {\\n    if(nums[i] >= mid) count++\\n  }\\n  if(count == targetCount) {\\n    return mid\\n  }\\n  if(count > targetCount) {\\n    // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u591A\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5927\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n    return findTarget(nums, mid, max, targetCount)\\n  }\\n  if(count < targetCount) {\\n    // \\u5927\\u4E8E\\u7684\\u503C\\u6BD4 k \\u5C11\\uFF0C\\u4E8C\\u5206\\u70B9\\u5411\\u8F83\\u5C0F\\u7684\\u4E00\\u534A\\u79FB\\u52A8\\n    return findTarget(nums, min, mid, targetCount)\\n  }\\n}\\nvar topKFrequent = function ([nums, k]) {\\n  var len = nums.length\\n\\n  var min = Infinity\\n  var max = -Infinity\\n  for(let i = 0; i< len;i++) {\\n    min = Math.min(nums[i], min)\\n    max = Math.max(nums[i], max)\\n  }\\n  var midVal = findTarget(nums, min, max, k)\\n\\n  // ---------- \\u77E5\\u9053\\u4E86\\u5206\\u5272\\u503C\\n  var resut = []\\n\\n  for(let i = 0; i< len;i++) {\\n    if(nums[i] > midVal) resut.push(nums[i])\\n  }\\n  var left = k - resut.length\\n  for(let i = 0; i< left;i++) {\\n    resut.push(midVal)\\n  }\\n  return resut\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_5 = \"var appendBucket = function(bucket, newVal, size){\\n  bucket.push(null)\\n  for(let i = bucket.length - 1; i >= 0;i--) {\\n    if(i > 0 && bucket[i - 1] < newVal) {\\n      bucket[i] = bucket[i - 1]\\n    } else {\\n      bucket[i] = newVal;\\n      break;\\n    }\\n  }\\n  if(bucket.length > size) bucket.pop()\\n}\\nvar topKFrequent = function ([nums, k]) {\\n  var bucket = []\\n  for(let i = 0; i< nums.length;i++) {\\n    appendBucket(bucket, nums[i], k)\\n  }\\n  return bucket\\n};\\nreturn topKFrequent;\\n\";\nconst codeStr_347_6 = \"var heapifyBucket = function(bucket, i){\\n  var left = 2 * i + 1;\\n  var right = 2 * i + 2;\\n  var small = i;\\n  if(left < bucket.length && bucket[left] < bucket[i]) small = left;\\n  if(right < bucket.length && bucket[right] < bucket[small]) small = right;\\n  if(small != i){\\n    // swap i <-> small\\n    var temp = bucket[i];\\n    bucket[i] = bucket[small];\\n    bucket[small] = temp;\\n    // \\u9012\\u5F52\\n    heapifyBucket(bucket, small);\\n  }\\n}\\nvar topKFrequent = function ([nums, k]) {\\n  var bucket = []\\n  for(let i = 0; i< nums.length;i++) {\\n    if(bucket.length < k) bucket.push(nums[i])\\n    else if(bucket[0] < nums[i]) {\\n      bucket.splice(0, 1, nums[i])\\n      heapifyBucket(bucket, 0)\\n    }\\n  }\\n  return bucket\\n};\\nreturn topKFrequent;\\n\";\nconst _frontmatter = {\n  \"slug\": \"bigger-k\",\n  \"title\": \"😋 最大的 K 元素\",\n  \"date\": \"2019-08-21 19:54:09\",\n  \"author\": \"Ubug\",\n  \"description\": \"Leet-Code 中常见的一个技巧。\",\n  \"categories\": [\"algorithm\"],\n  \"tags\": [\"算法\", \"leet-code\"],\n  \"banner\": \"./banner.jpg\"\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  codeStr_347,\n  codeStr_347_2,\n  codeStr_347_3,\n  codeStr_347_4,\n  codeStr_347_5,\n  codeStr_347_6,\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"\\u5F88\\u5E38\\u89C1\\u7684\\u4E00\\u4E2A Leet-Code \\u95EE\\u9898\\uFF0C\\u53D6\\u51FA\\u65E0\\u5E8F\\u6570\\u7EC4\\u7684\\u6700\\u5927 K \\u4E2A\\u6570\\uFF0C\\u6BD4\\u5982\\u3010\\u524D-k-\\u4E2A\\u9AD8\\u9891\\u5143\\u7D20\\u3011\\u3010\\u6570\\u7EC4\\u4E2D\\u7684\\u7B2Ck\\u4E2A\\u6700\\u5927\\u5143\\u7D20\\u3011\\u3002\"), mdx(\"p\", null, \"\\u4E0B\\u9762\\u4EE5\\u3010\\u524D-k-\\u4E2A\\u9AD8\\u9891\\u5143\\u7D20\\u3011\\u4E3A\\u4F8B\\u5199\\u4E0B\\u601D\\u8003\\uFF1A\"), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u4E00\\uFF1A\\u6392\\u5E8F\\u622A\\u53D6\"), mdx(\"p\", null, \"\\u6700\\u5BB9\\u6613\\u60F3\\u5230\\u7684\\u4E00\\u4E2A\\u65B9\\u6CD5\\uFF0C\\u9009\\u6700\\u5927\\u7684\\uFF0C\\u90A3\\u5C31\\u4ECE\\u5927\\u5230\\u5C0F\\u6392\\u5E8F\\u540E\\u622A\\u53D6\\u524D K \\u4E2A\\u5457\\u3002\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 10000,\n    height: 100,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u7B97\\u6CD5\\u7684\\u590D\\u6742\\u5EA6\\u4E3B\\u8981\\u662F\\u6392\\u5E8F\\u90E8\\u5206\\uFF0C\\u5FEB\\u6392\\u7684\\u8BDD\\u5E73\\u5747\\u53EF\\u4EE5\\u6709 O(nlog\", mdx(\"sub\", null, \"2\"), \"n)\\uFF0C\\u52A0\\u4E0A\\u622A\\u53D6\\u90E8\\u5206\\u7684\\u590D\\u6742\\u5EA6 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(K)\"), \"\\u3002\\u8FD9\\u6837\\u7684\\u4E00\\u4E2A\\u5904\\u7406\\u65B9\\u5F0F\\u5F88\\u7B80\\u5355\\uFF0C\\u4F46\\u662F\\u76F4\\u89C9\\u4E0A\\u5C31\\u53EF\\u4EE5\\u8BA4\\u4E3A\\u4E0D\\u662F\\u5F88\\u597D\\u7684\\u65B9\\u6CD5\\uFF0C\\u56E0\\u4E3A\\u5927\\u4E8E k \\u503C\\u7684\\u5143\\u7D20\\u4E0D\\u9700\\u8981\\u6BD4\\u8F83\\u6392\\u5E8F\\uFF0C\\u4F8B\\u5982 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"k = 1\"), \" \\u6216\\u8005\\u5F88\\u5C0F\\u7684\\u503C\\u7684\\u60C5\\u51B5\\uFF0C\\u7B97\\u6CD5\\u9700\\u8981\\u5BF9\\u6574\\u4E2A\\u6570\\u7EC4\\u8FDB\\u884C\\u6CA1\\u5FC5\\u8981\\u7684\\u6392\\u5E8F\\u3002\"), mdx(\"p\", null, \"\\u5728\\u6B64\\u8003\\u91CF\\u4E0B\\uFF0C\\u53EF\\u4EE5\\u91C7\\u7528\\u90E8\\u5206\\u6BD4\\u8F83\\u7684\\u65B9\\u6CD5\\u6765\\u5B9E\\u73B0\\u3002\"), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u4E8C\\uFF1A\\u90E8\\u5206\\u6BD4\\u8F83\"), mdx(\"p\", null, \"\\u5192\\u6CE1\\u6392\\u5E8F\\u6216\\u8005\\u9009\\u62E9\\u6392\\u5E8F\\u7684\\u601D\\u8DEF\\uFF0C\\u53EA\\u8FDB\\u884C\\u6BD4\\u8F83\\u524D K \\u4E2A\\u5927\\u6570\\u5373\\u53EF\\uFF0C\\u590D\\u6742\\u5EA6\\u662F K \\u6B21\\u904D\\u5386\\uFF0C\\u4E5F\\u5C31\\u662F \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(nK)\"), \"\\uFF0C\\u4F46\\u662F\\u8FD9\\u4E2A\\u5F53 n >> k \\u7684\\u65F6\\u5019\\u904D\\u5386 k \\u6B21\\u6574\\u4E2A\\u5E8F\\u5217\\u6709\\u70B9\\u4E0D\\u597D\\u3002\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_2,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"O(nK) \\u7684\\u590D\\u6742\\u5EA6\\u4E0E\\u65B9\\u6CD5\\u4E00 O(nlog\", mdx(\"sub\", null, \"2\"), \"n) \\u590D\\u6742\\u5EA6\\u76F8\\u6BD4\\uFF0C\\u5F53 k \\u8F83\\u5C0F\\u7684\\u65F6\\u5019\\u6BD4\\u8F83\\u5360\\u4F18\\uFF0C\\u4E5F\\u5C31\\u662F\\u5728 k < log\", mdx(\"sub\", null, \"2\"), \"n \\u7684\\u65F6\\u5019\\u9009\\u62E9\\u65B9\\u6CD5\\u4E8C\\uFF0C\\u800C\\u4E14\\u4E0D\\u6D89\\u53CA\\u5230\\u6570\\u7EC4\\u5143\\u7D20\\u7684\\u79FB\\u52A8\\u548C\\u8D4B\\u503C\\uFF0C\\u6240\\u4EE5\\u6027\\u80FD\\u76F8\\u6BD4\\u66F4\\u597D\\u4E9B\\u3002\"), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u4E09\\uFF1A\\u4E8C\\u5206\\u9009\\u62E9\"), mdx(\"p\", null, \"\\u4E8C\\u5206\\u6CD5\\u6280\\u5DE7\\u7684\\u5E94\\u7528\\uFF0C\\u9009\\u62E9\\u4E8C\\u5206\\u70B9\\u5C06\\u6570\\u7EC4\\u5206\\u5272\\uFF0C\\u4F46\\u662F\\u4E0D\\u662F\\u6309\\u7167\\u4E0B\\u6807\\u7684\\u65B9\\u5F0F\\uFF0C\\u800C\\u662F\\u9009\\u62E9\\u503C\\u548C\\u5927\\u5C0F\\u6BD4\\u8F83\\u7684\\u5206\\u5272\\uFF0C\\u540C\\u65F6\\u4E5F\\u4E0D\\u9700\\u8981\\u771F\\u5B9E\\u7684\\u5207\\u5206\\u6570\\u7EC4\\uFF0C\\u53EA\\u9700\\u8981\\u7EDF\\u8BA1\\u6570\\u91CF\\u5373\\u53EF\\uFF0C\\u6BD4\\u5982\\uFF1A\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"// [4,1,2,5,3,8,6,7,9], 2\\n// \\u4E8C\\u5206\\u70B9\\u4E3A\\u4E2D\\u4F4D\\u6570\\n\\n// 1,9 -> 5\\n// [4,1,2,3] [5,6,7,9]\\n// \\u53F3\\u4FA7\\u4E0D\\u5C0F\\u4E8E 5 \\u7684\\u6709 4 \\u4E2A\\uFF0C\\u5DE6\\u8FB9\\u754C\\u5411\\u53F3\\u79FB\\u52A8\\n\\n// 5,9 -> 7\\n// [5,6] [7,9]\\n// \\u53F3\\u4FA7\\u4E0D\\u5C0F\\u4E8E 7 \\u7684\\u6709 2 \\u4E2A\\uFF0C\\u6EE1\\u8DB3 k == 2 \\u7684\\u6761\\u4EF6\\n\\n// \\u5373\\u53EF\\u786E\\u8BA4\\u6700\\u5927\\u7684 k \\u4E2A\\u5143\\u7D20\\u4E3A\\u4E0D\\u5C0F\\u4E8E 7 \\u7684\\u6570\\n\")), mdx(\"p\", null, \"\\u8FD9\\u79CD\\u65B9\\u6CD5\\u5C31\\u662F\\u5229\\u7528\\u4E8C\\u5206\\u65B9\\u6CD5\\u903C\\u8FD1\\u76EE\\u6807\\u503C\\uFF0C\\u7136\\u540E\\u5F97\\u5230\\u5206\\u5272\\u70B9\\u3002\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_3,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u65B9\\u6CD5\\u867D\\u7136\\u6BD4\\u8F83\\u5947\\u602A\\uFF0C\\u4F46\\u662F\\u590D\\u6742\\u5EA6\\u4E0A\\u81F3\\u5C11\\u6BD4\\u65B9\\u6CD5\\u4E8C\\u8981\\u597D\\u4E00\\u4E9B\\uFF0C\\u800C\\u4E14\\u4E0D\\u9700\\u8981\\u4FEE\\u6539\\u539F\\u6570\\u7EC4\\uFF0C\\u7A7A\\u95F4\\u590D\\u6742\\u5EA6\\u8F83\\u5C0F\\uFF0C\\u800C\\u4E14\\u662F\\u5728 k \\u6BD4\\u8F83\\u5927\\u7684\\u65F6\\u5019\\u6BD4\\u4E0A\\u4E24\\u4E2A\\u597D\\u4E9B\\uFF0C\\u590D\\u6742\\u5EA6\\u53EF\\u4EE5\\u770B\\u505A\\u662F\\u6700\\u5927\\u6700\\u5C0F\\u503C\\u4E8C\\u5206\\u903C\\u8FD1\\u7B2C k \\u5927\\u7684\\u6570\\uFF0C\\u5E73\\u5747\\u4E3A O(nlog\", mdx(\"sub\", null, \"2\"), \"k)\\uFF0C\\u4E0D\\u8FC7\\u56E0\\u4E3A\\u4E8C\\u5206\\u6CD5\\u6700\\u574F\\u53EF\\u80FD\\u662F O(nk\", mdx(\"sup\", null, \"2\"), \")\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"PS: \\u4ECE\\u4E0A\\u9762\\u7684\\u8FD0\\u884C\\u4EE3\\u7801\\u4E2D\\u4E5F\\u80FD\\u770B\\u5230\\u7B2C\\u4E00\\u4E2A\\u4F8B\\u5B50\\u65F6\\u95F4\\u6BD4\\u65B9\\u6CD5\\u4E8C\\u8981\\u591A\\uFF0C\\u4F46\\u662F\\u540E\\u9762\\u7684\\u4F8B\\u5B50\\u7684\\u65F6\\u95F4\\u66F4\\u5C11\\u4E9B\\uFF0C\\u56E0\\u4E3A\\u7B2C\\u4E00\\u4E2A\\u573A\\u666F\\u4E0A\\u51FA\\u73B0\\u4E86\\u6700\\u574F\\u7684\\u60C5\\u51B5\\u3002\")), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u65B9\\u6CD5\\u5982\\u679C\\u7528\\u9012\\u5F52\\u66F4\\u597D\\u7406\\u89E3\\uFF0C\\u590D\\u6742\\u5EA6\\u4E0A\\u53EA\\u662F\\u628A\\u8FED\\u4EE3\\u6362\\u6210\\u4E86\\u9012\\u5F52\\uFF1A\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_4,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"h2\", null, \"\\u65B9\\u6CD5\\u56DB\\uFF1A\\u6700\\u5C0F\\u5806\"), mdx(\"p\", null, \"\\u60F3\\u8C61\\u62FF\\u7740\\u4E00\\u4E2A\\u7B50\\u53BB\\u8349\\u8393\\u56ED\\u81EA\\u52A9\\u91C7\\u6458\\uFF0C\\u7B50\\u91CC\\u6700\\u591A\\u88C5 k \\u4E2A\\u8349\\u8393\\uFF0C\\u603B\\u5934\\u5230\\u5C3E\\u4E0D\\u56DE\\u5934\\u7684\\u91C7\\u6458\\uFF0C\\u521A\\u5F00\\u59CB\\u5148\\u628A\\u7B50\\u88C5\\u6EE1\\uFF0C\\u7136\\u540E\\u540E\\u9762\\u6BCF\\u9047\\u5230\\u4E00\\u4E2A\\u6BD4\\u7B50\\u91CC\\u90FD\\u5C0F\\u7684\\uFF0C\\u5C31\\u628A\\u7B50\\u91CC\\u6700\\u5C0F\\u7684\\u6084\\u6478\\u7684\\u5403\\u4E86\\uFF0C\\u628A\\u65B0\\u7684\\u88C5\\u8FDB\\u7B50\\u91CC\\uFF0C\\u5230\\u6700\\u540E\\u80AF\\u5B9A\\u662F\\u80FD\\u62FF\\u5230\\u5168\\u90E8\\u8349\\u8393\\u7684\\u6700\\u5927\\u7684 K \\u4E2A\\u3002\\uFF08\\u5982\\u679C\\u662F\\u771F\\u4E8B\\u7684\\u8BDD\\uFF0C\\u8349\\u8393\\u4E5F\\u5168\\u7ED9\\u4EBA\\u5BB6\\u5403\\u5B8C\\u4E86\\uFF09\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u6837\\u7684\\u4E00\\u4E2A\\u5F88\\u597D\\u7684\\u573A\\u666F\\u662F\\u53EA\\u9700\\u8981\\u904D\\u5386\\u4E00\\u6B21\\u5168\\u6570\\u7EC4\\u5C31\\u5B8C\\u6210\\u4E86\\uFF0C\\u5728 n \\u5F88\\u5927\\uFF0Ck \\u76F8\\u5BF9\\u8F83\\u5C0F\\u7684\\u65F6\\u5019\\u66F4\\u597D\\u4E9B\\u3002\"), mdx(\"p\", null, \"\\u5177\\u4F53\\u5B9E\\u73B0\\u5C31\\u662F\\uFF1A\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_5,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }), mdx(\"p\", null, \"\\u590D\\u6742\\u5EA6\\u4E3B\\u8981\\u662F\\u4E3B\\u5FAA\\u73AF\\u91CC\\u9762 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"appendBucket\"), \" \\u7684\\u590D\\u6742\\u5EA6\\uFF0C\\u800C\\u4E14\\u662F\\u5411 k \\u5927\\u5C0F\\u7684\\u5DF2\\u6392\\u5E8F\\u5E8F\\u5217\\u4E2D\\u63D2\\u5165\\u4E00\\u4E2A\\u503C\\uFF0C\\u590D\\u6742\\u5EA6\\u662F\\u6B63\\u5E38\\u6392\\u5E8F\\u53BB\\u9664 n\\uFF0C\\u4E5F\\u5C31\\u662F\\u5806\\u6392\\u5E8F\\u3001\\u5FEB\\u901F\\u6392\\u5E8F\\u3001\\u5F52\\u5E76\\u6392\\u5E8F\\u7B49\\u7684\\u601D\\u8DEF\\uFF0C\\u53EF\\u4EE5\\u7B97\\u662F O(log\", mdx(\"sub\", null, \"2\"), \"K)\\uFF0C\\u6240\\u4EE5\\u603B\\u7684\\u590D\\u6742\\u5EA6\\u662F O(nlog\", mdx(\"sub\", null, \"2\"), \"K)\\u3002\\u4F18\\u70B9\\u662F\\u4EC5\\u9700\\u8981\\u5168\\u90E8\\u5143\\u7D20\\u7684\\u4E00\\u6B21\\u904D\\u5386\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"PS\\uFF1A\\u4E0A\\u9762\\u7684\\u4EE3\\u7801\\u4E3A\\u4E86\\u8868\\u793A\\u600E\\u4E48\\u627E\\u5230\\u6700\\u5C0F\\u503C\\u7684\\u63D2\\u5165\\u6392\\u5E8F\\u7684\\u601D\\u8DEF\\uFF0C\\u6700\\u540E\\u590D\\u6742\\u5EA6\\u662F O(nK)\\uFF0C\\u5982\\u679C\\u628A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"appendBucket\"), \" \\u6362\\u6210\\u6700\\u5C0F\\u5806\\u505A\\u5C31\\u80FD\\u505A\\u5230 O(log\", mdx(\"sub\", null, \"2\"), \"K)\")), mdx(\"p\", null, \"\\u6700\\u5C0F\\u5806\\u7684\\u65B9\\u6CD5\\u662F\\u4E00\\u4E2A\\u66F4\\u597D\\u7684\\u63D2\\u5165\\u65B0\\u6570\\u636E\\u7684\\u65B9\\u5F0F\\uFF0C\\u56E0\\u4E3A\\u4E0D\\u9700\\u8981\\u904D\\u5386\\u90A3\\u4E48\\u591A\\u5143\\u7D20\\uFF0C\\u5E73\\u5747\\u590D\\u6742\\u5EA6\\u66F4\\u597D\\u4E9B\\uFF08\\u4F46\\u662F\\u5B58\\u5728\\u6700\\u574F\\u60C5\\u51B5\\uFF09\\uFF1A\"), mdx(LeetCodePlayground, {\n    codeStr: codeStr_347_6,\n    inputs: [[[3, 2, 1, 5, 6, 4], 2], [[2, 1], 2], [[3, 3, 3, 3, 3, 3, 3, 3, 3], 8], [[3, 2, 3, 1, 2, 4, 5, 5, 6], 4]],\n    inputStrs: ['[3, 2, 1, 5, 6, 4], 2', '[2, 1], 2', '[3, 3, 3, 3, 3, 3, 3, 3, 3], 8', '[3, 2, 3, 1, 2, 4, 5, 5, 6], 4'],\n    times: 1000,\n    output: result => \"[\".concat(result.map(num => num).join(','), \"]\"),\n    mdxType: \"LeetCodePlayground\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;"},"next":{"fileAbsolutePath":"D:/ubug/storybook/content/blog/coding-badcase/coding-badcase.md","id":"2a40922f-a2a5-561a-852a-dfd6aef75549","parent":{"name":"coding-badcase","sourceInstanceName":"blog"},"excerpt":"想分享的是看到经验不足的开发刚入门时，会遇到的一些问题，能看到经验这个东西是也并不是摸不着，踩的坑多了经验就来了~~ 并不是一个很老道、很有经验或者很厉害的开发，但是遇到了很多自己之前犯过的问题。虽然公司项目不大，但是也带了不少实习生，几乎都是初学者，遇到很多编程新手会犯的问题，很多时候经验真的是很重要。更多的时候因为没经验，很多简单的概念或者调试过程就会耽误很多精力，别人的一个小时任务，在很多细节上浪费时间，造成效率低下。 ps…","fields":{"title":"🖐 编程新手问题","slug":"/blog/coding-badcase","description":"带了一些实习生之后发现编程初学者和老鸟的区别，很多时候经验真的是很重要，在此记录下这些不同","date":"2019-08-06","redirects":null,"datetime":"2019-08-06 19:14:03","categories":["code"],"series":null,"tags":["思考","协作","skills"],"status":"online"},"frontmatter":{"published":null,"tags":["思考","协作","skills"],"theme":null,"slug":"coding-badcase","date":"2019-08-06 19:14:03"},"body":"const _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsx mdx */\n\nconst _frontmatter = {\n  \"slug\": \"coding-badcase\",\n  \"title\": \"🖐 编程新手问题\",\n  \"date\": \"2019-08-06 19:14:03\",\n  \"author\": \"Ubug\",\n  \"description\": \"带了一些实习生之后发现编程初学者和老鸟的区别，很多时候经验真的是很重要，在此记录下这些不同\",\n  \"categories\": [\"code\"],\n  \"tags\": [\"思考\", \"协作\", \"skills\"],\n  \"banner\": \"./banner.png\",\n  \"tips\": [\"我家主人也是一样的初学者，也是过来人呢！~\"]\n};\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return mdx(\"div\", props);\n};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  let {\n      components\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"hr\", null), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u60F3\\u5206\\u4EAB\\u7684\\u662F\\u770B\\u5230\\u7ECF\\u9A8C\\u4E0D\\u8DB3\\u7684\\u5F00\\u53D1\\u521A\\u5165\\u95E8\\u65F6\\uFF0C\\u4F1A\\u9047\\u5230\\u7684\\u4E00\\u4E9B\\u95EE\\u9898\\uFF0C\\u80FD\\u770B\\u5230\\u7ECF\\u9A8C\\u8FD9\\u4E2A\\u4E1C\\u897F\\u662F\\u4E5F\\u5E76\\u4E0D\\u662F\\u6478\\u4E0D\\u7740\\uFF0C\\u8E29\\u7684\\u5751\\u591A\\u4E86\\u7ECF\\u9A8C\\u5C31\\u6765\\u4E86~~\")), mdx(\"hr\", null), mdx(\"p\", null, \"\\u5E76\\u4E0D\\u662F\\u4E00\\u4E2A\\u5F88\\u8001\\u9053\\u3001\\u5F88\\u6709\\u7ECF\\u9A8C\\u6216\\u8005\\u5F88\\u5389\\u5BB3\\u7684\\u5F00\\u53D1\\uFF0C\\u4F46\\u662F\\u9047\\u5230\\u4E86\\u5F88\\u591A\\u81EA\\u5DF1\\u4E4B\\u524D\\u72AF\\u8FC7\\u7684\\u95EE\\u9898\\u3002\\u867D\\u7136\\u516C\\u53F8\\u9879\\u76EE\\u4E0D\\u5927\\uFF0C\\u4F46\\u662F\\u4E5F\\u5E26\\u4E86\\u4E0D\\u5C11\\u5B9E\\u4E60\\u751F\\uFF0C\\u51E0\\u4E4E\\u90FD\\u662F\\u521D\\u5B66\\u8005\\uFF0C\\u9047\\u5230\\u5F88\\u591A\\u7F16\\u7A0B\\u65B0\\u624B\\u4F1A\\u72AF\\u7684\\u95EE\\u9898\\uFF0C\\u5F88\\u591A\\u65F6\\u5019\\u7ECF\\u9A8C\\u771F\\u7684\\u662F\\u5F88\\u91CD\\u8981\\u3002\\u66F4\\u591A\\u7684\\u65F6\\u5019\\u56E0\\u4E3A\\u6CA1\\u7ECF\\u9A8C\\uFF0C\\u5F88\\u591A\\u7B80\\u5355\\u7684\\u6982\\u5FF5\\u6216\\u8005\\u8C03\\u8BD5\\u8FC7\\u7A0B\\u5C31\\u4F1A\\u803D\\u8BEF\\u5F88\\u591A\\u7CBE\\u529B\\uFF0C\\u522B\\u4EBA\\u7684\\u4E00\\u4E2A\\u5C0F\\u65F6\\u4EFB\\u52A1\\uFF0C\\u5728\\u5F88\\u591A\\u7EC6\\u8282\\u4E0A\\u6D6A\\u8D39\\u65F6\\u95F4\\uFF0C\\u9020\\u6210\\u6548\\u7387\\u4F4E\\u4E0B\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"ps: \\u65B0\\u624B\\u6307\\u7684\\u662F\\u7F16\\u7A0B\\u521A\\u5165\\u95E8\\uFF0C\\u5728\\u6CA1\\u6709\\u5B8C\\u6574\\u9700\\u6C42\\u8BF4\\u660E\\u6216\\u8005\\u6280\\u672F\\u6808\\u4E0D\\u719F\\u6089\\u7684\\u80CC\\u666F\\u4E0B\\uFF0C\\u800C\\u4E0D\\u4EC5\\u9650\\u4E8E\\u5DE5\\u4F5C\\u5E74\\u9650\\u5C11\\uFF0C\\u5F88\\u591A\\u5C0F\\u9879\\u76EE\\u6CA1\\u6709\\u5168\\u9762\\u7684\\u9700\\u6C42\\u6587\\u6863\\uFF0C\\u8FD8\\u76F4\\u63A5\\u9762\\u5411 c \\u7AEF\\uFF0C\\u5C31\\u4F1A\\u51FA\\u73B0\\u5F88\\u591A\\u6548\\u7387\\u4F4E\\u4E0B\\u7684\\u8E29\\u5751\\u3002\")), mdx(\"div\", {\n    \"style\": {},\n    \"'flex',\": \"\",\n    \"justifycontent:\": \"\",\n    \"'center'}}\": \"\"\n  }, \"\\n  \", mdx(\"withfigcaption\", {\n    parentName: \"div\",\n    \"title\": \"Coding\"\n  }, \"\\n    \", mdx(\"img\", {\n    parentName: \"withfigcaption\",\n    \"src\": \"https://fdb.ubug.io/storybook-videos/coding-crazy.gif\"\n  }), \"\\n  \")), mdx(\"h2\", null, \"Bad Case\"), mdx(\"h3\", null, \"1\\u3001\\u5047\\u8BBE\\u6210\\u529F\\u7F16\\u7A0B\"), mdx(\"p\", null, \"\\u65B0\\u624B\\u5728\\u505A\\u4E00\\u4E2A\\u529F\\u80FD\\u7684\\u65F6\\u5019\\uFF0C\\u5173\\u6CE8\\u70B9\\u5927\\u90E8\\u5206\\u662F\\u5982\\u4F55\\u6210\\u529F\\u5B9E\\u73B0\\u9700\\u6C42\\uFF0C\\u800C\\u4E0D\\u662F\\u505A\\u597D\\u529F\\u80FD\\u3002\"), mdx(\"p\", null, \"\\u5C31\\u5BFC\\u81F4\\u4E86\\u5F00\\u53D1\\u8C03\\u8BD5\\u7684\\u8FC7\\u7A0B\\u4E2D\\uFF0C\\u66F4\\u5F3A\\u8C03\\u7684\\u662F\\u80FD\\u591F\\u4ECE\\u5934\\u5230\\u4F4D\\u80FD\\u6210\\u529F\\u7684\\u5B9E\\u73B0\\u5168\\u90E8\\u4EA4\\u4E92\\uFF0C\\u6240\\u4EE5\\u9519\\u8BEF\\u7684\\u6355\\u83B7\\u3001\\u5904\\u7406\\u3001\\u63D0\\u9192\\u7B49\\u5904\\u7406\\u7ECF\\u5E38\\u6027\\u7684\\u88AB\\u5FFD\\u7565\\uFF0C\\u6240\\u4EE5\\u505A\\u51FA\\u6765\\u7684\\u4E1C\\u897F\\u9700\\u8981\\u989D\\u5916\\u82B1\\u7CBE\\u529B\\u8865\\u6F0F\\u6D1E\\u3002\"), mdx(\"p\", null, \"\\u6BD4\\u5982\\u5728\\u5F00\\u53D1\\u524D\\u7AEF\\u4E00\\u4E2A\\u5E94\\u7528\\u9875\\u9762\\u7684\\u8FC7\\u7A0B\\u4E2D\\uFF0C\\u9700\\u8981\\u83B7\\u53D6\\u6570\\u636E\\u3001\\u4ECE\\u672C\\u5730\\u7F13\\u5B58\\u8BFB\\u53D6\\u6570\\u636E\\u3001\\u83B7\\u53D6\\u6D4F\\u89C8\\u5668\\u67D0\\u4E9B\\u6570\\u636E\\u7B49\\uFF0C\\u4E00\\u822C\\u521D\\u5B66\\u8005\\u4F1A\\u76F4\\u63A5\\u5FC3\\u91CC\\u5047\\u8BBE\\u8FD9\\u4E9B\\u6570\\u636E\\u90FD\\u80FD\\u6210\\u529F\\u8BFB\\u53D6\\uFF0C\\u6216\\u8005\\u61D2\\u5F97\\u8003\\u8651\\uFF0C\\u6240\\u4EE5\\u9519\\u8BEF\\u90E8\\u5206\\u6CA1\\u6709\\u5B9E\\u73B0\\u3002\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"fetch('example.com').then(response => response.json()).then(data => {\\n    document.getElementById('container').innerHTML = data.message\\n})\\nconst divideBy = (a, b) => a / b\\ndivideBy(6, 2) === 3\\n\")), mdx(\"p\", null, \"\\u8001\\u9E1F\\u7684\\u505A\\u6CD5\\u4F1A\\u66F4\\u52A0\\u4E25\\u8C28\\uFF0C\\u6BCF\\u4E00\\u4E2A Promise \\u7684 catch \\u90FD\\u4F1A\\u6709\\uFF0C\\u670D\\u52A1\\u5668\\u8FD4\\u56DE\\u7684\\u6570\\u636E\\u90FD\\u8981\\u9A8C\\u8BC1 statusCode\\uFF0C\\u672C\\u5730\\u6D4F\\u89C8\\u5668\\u7684\\u517C\\u5BB9\\u6027\\u90FD\\u8981\\u8003\\u8651\\u3002\"), mdx(\"p\", null, \"\\u6BD5\\u7ADF\\u7ECF\\u624B\\u7684\\u9879\\u76EE\\u90FD\\u9700\\u8981\\u4E0A\\u7EBF\\uFF0C\\u5728\\u4E0D\\u540C\\u7684\\u73AF\\u5883\\u4E0B\\u9519\\u8BEF\\u975E\\u5E38\\u5BB9\\u6613\\u51FA\\u73B0\\uFF0C\\u4E0D\\u5904\\u7406\\u7684\\u8BDD\\u4F1A\\u51FA\\u73B0\\u95EE\\u9898\\u7684\\uFF0C\\u8F7B\\u5219\\u6CA1\\u6709\\u53CD\\u5E94\\uFF0C\\u91CD\\u5219\\u767D\\u5C4F\\u5F71\\u54CD\\u4E1A\\u52A1\\uFF0C\\u6240\\u4EE5\\u505A\\u7684\\u4E1C\\u897F\\u4E0D\\u662F\\u5F53\\u521D\\u5B9E\\u4E60\\u7684\\u65F6\\u5019 demo \\u7EA7\\u522B\\u7684\\u4E1C\\u897F\\u4E86\\u3002\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"import 'whatwg-fetch'\\n\\nfetch('example.com').then(response => response.json()).then(data => {\\n    if(data.status === 0) {\\n        const el = document.getElementById('container')\\n        if(el) el.innerHTML = data.message\\n        else console.error('element not found')\\n    } else {\\n        console.error('json data error', data.status)\\n    }\\n}).catch(() => {\\n    console.error('json fetch error');\\n})\\nconst divideBy = (a, b) => {\\n    if(typeof a !== 'number' ||\\n      typeof b !== 'number' ||\\n      b === 0) throw Error('invaild params')\\n    return a / b\\n}\\ndivideBy(6, 2) === 3\\n\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u6709\\u6761\\u4EF6\\u7684\\u7528\\u5B8C\\u5584\\u7684\\u6D4B\\u8BD5\\u6761\\u4EF6\\u6765\\u6D4B\\u8BD5\\u8986\\u76D6\\u3002\\u6CA1\\u6761\\u4EF6\\u7684\\u591A\\u8E29\\u5751\\u88AB\\u9A82\\uFF0C\\u627E\\u5230\\u7ECF\\u9A8C\\u5C31\\u884C\\u4E86\\u3002\\u66F4\\u591A\\u7684\\u662F\\u628A\\u9519\\u8BEF\\u5904\\u7406\\u5F53\\u505A\\u7F16\\u7A0B\\u7684\\u4E00\\u90E8\\u5206\\uFF0C\\u5F00\\u53D1\\u8FDC\\u8FDC\\u4E0D\\u4EC5\\u4EC5\\u662F\\u6280\\u672F\\u9A8C\\u8BC1\\u8303\\u7574\\uFF0C\\u4F60\\u4EE5\\u4E3A\\u6CA1\\u4EBA\\u4F1A\\u9047\\u5230\\u7684\\u4E07\\u5206\\u4E4B\\u4E00\\u9519\\u8BEF\\u6761\\u4EF6\\uFF0C\\u653E\\u5927\\u4E0A\\u4E07\\u500D\\u5C31\\u662F\\u4E00\\u4E2A\\u5FC5\\u5B9A\\u51FA\\u73B0\\u7684\\u95EE\\u9898\\u3002\")), mdx(\"h3\", null, \"2\\u3001\\u8003\\u8651\\u7684\\u89D2\\u5EA6\\u4E0D\\u540C\"), mdx(\"p\", null, \"\\u4F5C\\u4E3A\\u4E00\\u4E2A\\u7A0B\\u5E8F\\u5458\\uFF0C\\u5C24\\u5176\\u662F\\u5728\\u6CA1\\u6709\\u5B8C\\u6574\\u56E2\\u961F\\u548C\\u4EA7\\u54C1\\u7684\\u60C5\\u51B5\\u4E0B\\uFF0C\\u505A\\u51FA\\u6765\\u7684\\u4EA7\\u54C1\\u975E\\u5E38\\u7684\\u7A0B\\u5E8F\\u5458\\u98CE\\u683C\\uFF0C\\u4E0D\\u4F1A\\u8003\\u8651\\u600E\\u4E48\\u7528\\uFF0C\\u800C\\u662F\\u8003\\u8651\\u5B9E\\u73B0\\u3002\\u5178\\u578B\\u7684\\u573A\\u666F\\u5C31\\u662F\\u4E0D\\u6CE8\\u91CD\\u7528\\u6237\\u4F53\\u9A8C\\u3001\\u6CA1\\u6709\\u6574\\u4F53\\u98CE\\u683C\\u548C\\u4EA4\\u4E92\\u4F53\\u7CFB\\u3001\\u6280\\u672F\\u63A2\\u7A76\\u5927\\u4E8E\\u4EA7\\u54C1\\u9700\\u6C42\\u7B49\\u3002\"), mdx(\"p\", null, \"\\u4E3E\\u4E2A\\u5C0F\\u674E\\u5B50\\uFF0C\\u51FA\\u9519\\u4FE1\\u606F\\u7684\\u65F6\\u5019\\uFF0C\\u7A0B\\u5E8F\\u5458\\u7ECF\\u5E38\\u4F1A\\u5C06\\u7CFB\\u7EDF\\u7684\\u8BED\\u8A00\\u544A\\u8BC9\\u7528\\u6237\\uFF0C\\u6BD4\\u5982\\u83B7\\u53D6\\u9EA6\\u514B\\u98CE\\u6743\\u9650\\u5C31\\u6709\\u5F88\\u591A\\u4E0D\\u540C\\u7684\\u9519\\u8BEF\\u7C7B\\u578B\\uFF0C\\u6BD4\\u5982\\u6743\\u9650\\u95EE\\u9898\\u3001\\u8BBE\\u5907\\u6545\\u969C\\u3001\\u627E\\u4E0D\\u5230\\u6216\\u5360\\u7528\\u3001\\u5B89\\u5168\\u95EE\\u9898\\u7B49\\uFF0C\\u6309\\u7167\\u4E00\\u822C\\u7406\\u89E3\\uFF0C\\u6211\\u4EEC\\u9700\\u8981\\u63D0\\u793A\\u7528\\u6237\\u54EA\\u91CC\\u6709\\u95EE\\u9898\\u4E86\\uFF0C\\u6240\\u4EE5\\u5C06\\u95EE\\u9898\\u544A\\u8BC9\\u7528\\u6237\\uFF0C\\u4F46\\u662F 95% \\u7684\\u7528\\u6237\\u5176\\u5B9E\\u4E0D\\u660E\\u767D\\u6211\\u4EEC\\u63D0\\u793A\\u7684\\u95EE\\u9898\\u7684\\uFF0C\\u6240\\u4EE5\\u6211\\u4EEC\\u53EA\\u80FD\\u63D0\\u793A\\u7528\\u6237\\u80FD\\u4E0D\\u80FD\\u7528\\uFF0C\\u4E0D\\u80FD\\u7528\\u7684\\u65F6\\u5019\\u80FD\\u4E0D\\u80FD\\u81EA\\u52A8\\u4FEE\\u590D\\uFF0C\\u4E0D\\u80FD\\u4FEE\\u590D\\u600E\\u4E48\\u8BA9\\u7528\\u6237\\u4F7F\\u7528\\u522B\\u7684\\u9014\\u5F84\\uFF0C\\u6700\\u540E\\u65E0\\u6CD5\\u4F7F\\u7528\\u76F4\\u63A5\\u63D0\\u793A\\u7528\\u6237\\u65E0\\u6CD5\\u4F7F\\u7528\\u5373\\u53EF\\u3002\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u5BF9\\u4E8E\\u7528\\u6237\\uFF0C\\u6211\\u4EEC\\u7A0B\\u5E8F\\u5458\\u53EF\\u4EE5\\u7528\\u7B80\\u77ED\\u7684\\u8BDD\\u544A\\u8BC9\\u4ED6\\u600E\\u4E48\\u529E\\uFF0C\\u800C\\u4E0D\\u662F\\u6559\\u4ED6\\u4E3A\\u4EC0\\u4E48\\u51FA\\u73B0\\u95EE\\u9898\\u3002\")), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u591A\\u4E86\\u89E3\\u4E00\\u4E9B\\u4EA7\\u54C1\\u7684\\u7406\\u8BBA\\u548C\\u8BA4\\u8BC6\\uFF0C\\u4F1A\\u5BF9\\u7F16\\u7A0B\\u4EA7\\u751F\\u5F88\\u591A\\u597D\\u5904\\uFF0C\\u5BF9\\u81EA\\u5DF1\\u7684\\u80FD\\u529B\\u4E5F\\u662F\\u4E00\\u79CD\\u66F4\\u597D\\u7684\\u68B3\\u7406\\u3002\\u9762\\u5411 C \\u7AEF\\u7684\\u4EA7\\u54C1\\u4E00\\u5B9A\\u8981\\u6709\\u4E13\\u95E8\\u7684\\u7CBE\\u529B\\u6765\\u59A5\\u5584\\u5904\\u7406\\u6BCF\\u4E00\\u5904\\u7F16\\u7A0B\\u8D70\\u5411\\uFF0C\\u81EA\\u5DF1\\u624B\\u4E2D\\u7684\\u4EA7\\u54C1\\u4E0D\\u662F\\u51B7\\u51B0\\u51B0\\u7684\\u8F93\\u5165\\u8F93\\u51FA\\uFF0C\\u66F4\\u8981\\u7AD9\\u5728\\u4F60\\u7684\\u7528\\u6237\\u7FA4\\u4F53\\u8003\\u8651\\u4F60\\u6240\\u5448\\u73B0\\u7684\\u4EA4\\u4E92\\u3002\")), mdx(\"h3\", null, \"3\\u3001\\u53D1\\u73B0\\u9519\\u8BEF\\u7684\\u80FD\\u529B\"), mdx(\"p\", null, mdx(\"figure\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-figure\",\n    \"style\": {}\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"449px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/77f73a2af5bfa1aef2da279782a2973a/b7a22/error.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"18.91891891891892%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAgElEQVQY05WPSQqEQAxF6/53EzfigDij7kRKRWiovO4gRUPpxg8vEz+QmPM42HfLxwmqKwZy7l+LXPh5gDnrGpemSBRBniNxDL+eJIGigK6DcYS2haaBsoQsg6qCZblhnLUwz9D3iC7pgpqHAaYJ1hXUozlk224Yf71/9fHlF/oCoGQ2TX0F0HQAAAAASUVORK5CYII=')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Google 搜索\",\n    \"title\": \"Google 搜索\",\n    \"src\": \"/static/77f73a2af5bfa1aef2da279782a2973a/b7a22/error.png\",\n    \"srcSet\": [\"/static/77f73a2af5bfa1aef2da279782a2973a/2c191/error.png 259w\", \"/static/77f73a2af5bfa1aef2da279782a2973a/b7a22/error.png 449w\"],\n    \"sizes\": \"(max-width: 449px) 100vw, 449px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), \"\\n    \", mdx(\"figcaption\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-figcaption\"\n  }, \"Google \\u641C\\u7D22\"), \"\\n  \")), mdx(\"p\", null, \"\\u8FD9\\u4E2A\\u5BF9\\u4E8E\\u521D\\u5B66\\u8005\\u66F4\\u591A\\u4E9B\\uFF0C\\u53EF\\u80FD\\u662F\\u56E0\\u4E3A\\u7ECF\\u9A8C\\u95EE\\u9898\\uFF0C\\u6216\\u8005\\u5C31\\u662F\\u5355\\u7EAF\\u7684\\u4E0D\\u77E5\\u6240\\u63AA\\u3002\\u6709\\u5F88\\u591A\\u4EBA\\u5728\\u7A0B\\u5E8F\\u51FA\\u73B0\\u9519\\u7684\\u7B2C\\u4E00\\u53CD\\u5E94\\u662F\\u81EA\\u5DF1\\u4EE3\\u7801\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u7136\\u540E\\u5C31\\u76EF\\u7740\\u81EA\\u5DF1\\u7684\\u4EE3\\u7801 \\u201C\\u770B\\u201D \\u54EA\\u91CC\\u51FA\\u73B0\\u95EE\\u9898\\u4E86\\uFF0C\\u800C\\u4E0D\\u662F\\u53BB \\u201C\\u8C03\\u8BD5\\u201D\\u3002\\u81EA\\u4EE5\\u4E3A\\u80FD\\u8D70\\u901A\\u7684\\u6D41\\u7A0B\\u53CD\\u590D\\u68C0\\u67E5\\u65E0\\u6570\\u904D\\uFF0C\\u4E0D\\u5982\\u6253\\u4E2A\\u65AD\\u70B9\\u8BA9 debuger \\u544A\\u8BC9\\u4F60\\u7A0B\\u5E8F\\u600E\\u4E48\\u8D70\\u7684\\u3002\"), mdx(\"p\", null, \"\\u800C\\u4E14\\u6709\\u4E9B\\u4EBA\\u662F\\u77E5\\u9053\\u51FA\\u9519\\u4E86\\uFF0C\\u62A5\\u9519\\u4FE1\\u606F\\u63D0\\u793A\\u7684\\u5F88\\u660E\\u786E\\uFF0C\\u4F46\\u662F\\u4E0D\\u770B\\u62A5\\u9519\\u4FE1\\u606F\\uFF0C\\u6216\\u8005\\u4E0D\\u660E\\u767D\\u63D0\\u793A\\u7684\\u9519\\u8BEF\\u7684\\u542B\\u4E49\\uFF0C\\u53EF\\u80FD\\u5BF9\\u82F1\\u6587\\u4E0D\\u654F\\u611F\\uFF0C\\u53EF\\u80FD\\u89C9\\u5F97\\u81EA\\u5DF1\\u77E5\\u9053\\u54EA\\u91CC\\u6709\\u95EE\\u9898\\uFF1F\\uFF1F\\u8BA9\\u6211\\u5F88\\u8D39\\u89E3\\u3002\"), mdx(\"p\", null, \"\\u521A\\u5F00\\u59CB\\u7684\\u65F6\\u5019\\u90FD\\u8981\\u63D0\\u793A\\u770B\\u9519\\u8BEF\\u662F\\u4EC0\\u4E48\\uFF0C\\u770B\\u5F97\\u61C2\\u5C31\\u6539\\uFF0C\\u770B\\u4E0D\\u61C2\\u5C31\\u641C\\u7D22\\uFF0C\\u521D\\u7EA7\\u9636\\u6BB5\\u7684\\u7F16\\u7A0B\\uFF0C\\u63D0\\u793A\\u52A0\\u641C\\u7D22\\u80FD\\u89E3\\u51B3 90% \\u7684\\u95EE\\u9898\\u3002\"), mdx(\"p\", null, \"\\u5982\\u679C\\u6CA1\\u529E\\u6CD5\\u5728\\u7B2C\\u4E00\\u65F6\\u95F4\\u770B\\u5230\\u95EE\\u9898\\uFF1A\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u4E00\\u65B9\\u9762\\u662F\\u903B\\u8F91\\u95EE\\u9898\\uFF0C\\u6BD4\\u5982\\u4EE3\\u7801\\u7684\\u8FD0\\u884C\\u6D41\\u7A0B\\uFF0C\\u6216\\u8005\\u4EE3\\u7801\\u7684\\u8C03\\u7528\\u4E4B\\u7C7B\\u7684\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u8FD9\\u6837\\u7684\\u60C5\\u51B5\\u7B80\\u5355\\u7684\\u6253\\u65AD\\u70B9\\u6216\\u8005\\u8F93\\u51FA\\u5173\\u952E\\u6570\\u636E\\u5C31\\u80FD\\u53D1\\u73B0\\u95EE\\u9898\\u3002\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"\\u53E6\\u4E00\\u65B9\\u9762\\u662F\\u4E1A\\u52A1\\u95EE\\u9898\\u3002\\u6BD4\\u5982\\u4EA7\\u54C1\\u6587\\u6863\\u4E2D\\u6570\\u636E\\u7684\\u7ED3\\u6784\\u5904\\u7406\\u51FA\\u73B0\\u95EE\\u9898\\uFF0C\\u6216\\u8005\\u7406\\u89E3\\u9519\\u4E86\\u6587\\u6863\\uFF0C\\u8FD9\\u4E2A\\u5C31\\u662F\\u4E1A\\u52A1\\u719F\\u6089\\u7A0B\\u5EA6\\u4E86\\u3002\"))), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u5584\\u5176\\u4E8B\\uFF0C\\u5229\\u5176\\u5668\\u3002\\u7406\\u89E3 IDE \\u7684\\u8F93\\u51FA\\uFF0C\\u7406\\u89E3 SDK\\u3001API \\u63D0\\u4F9B\\u7684\\u4FE1\\u606F\\u4F5C\\u4E3A\\u7EBF\\u7D22\\u3002\")), mdx(\"h3\", null, \"3\\u3001\\u6587\\u6863\\u641C\\u7D22\\u80FD\\u529B\"), mdx(\"p\", null, mdx(\"figure\", {\n    parentName: \"p\",\n    \"className\": \"gatsby-resp-image-figure\",\n    \"style\": {}\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-wrapper\",\n    \"style\": {\n      \"position\": \"relative\",\n      \"display\": \"block\",\n      \"marginLeft\": \"auto\",\n      \"marginRight\": \"auto\",\n      \"maxWidth\": \"647px\"\n    }\n  }, \"\\n      \", mdx(\"a\", {\n    parentName: \"span\",\n    \"className\": \"gatsby-resp-image-link\",\n    \"href\": \"/static/719dbec12b7e3cc39aa62bb56d167a8d/8d155/how-to-code.png\",\n    \"style\": {\n      \"display\": \"block\"\n    },\n    \"target\": \"_blank\",\n    \"rel\": [\"noopener\"]\n  }, \"\\n    \", mdx(\"span\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-background-image\",\n    \"style\": {\n      \"paddingBottom\": \"5.019305019305019%\",\n      \"position\": \"relative\",\n      \"bottom\": \"0\",\n      \"left\": \"0\",\n      \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAABCAYAAADeko4lAAAACXBIWXMAAAsSAAALEgHS3X78AAAARUlEQVQI123DAQpAMBSAYVcxoSiExlt7E9PI/e/zcwBffdkqirhAPG/6YWacLEdMaNhJ14NdHCIerxtN25GbElPU3+r3Cx09H42LFZkYAAAAAElFTkSuQmCC')\",\n      \"backgroundSize\": \"cover\",\n      \"display\": \"block\"\n    }\n  }), \"\\n  \", mdx(\"img\", {\n    parentName: \"a\",\n    \"className\": \"gatsby-resp-image-image\",\n    \"alt\": \"Google 搜索\",\n    \"title\": \"Google 搜索\",\n    \"src\": \"/static/719dbec12b7e3cc39aa62bb56d167a8d/8d155/how-to-code.png\",\n    \"srcSet\": [\"/static/719dbec12b7e3cc39aa62bb56d167a8d/2c191/how-to-code.png 259w\", \"/static/719dbec12b7e3cc39aa62bb56d167a8d/86b01/how-to-code.png 518w\", \"/static/719dbec12b7e3cc39aa62bb56d167a8d/8d155/how-to-code.png 647w\"],\n    \"sizes\": \"(max-width: 647px) 100vw, 647px\",\n    \"style\": {\n      \"width\": \"100%\",\n      \"height\": \"100%\",\n      \"margin\": \"0\",\n      \"verticalAlign\": \"middle\",\n      \"position\": \"absolute\",\n      \"top\": \"0\",\n      \"left\": \"0\"\n    },\n    \"loading\": \"lazy\"\n  }), \"\\n  \"), \"\\n    \"), \"\\n    \", mdx(\"figcaption\", {\n    parentName: \"figure\",\n    \"className\": \"gatsby-resp-image-figcaption\"\n  }, \"Google \\u641C\\u7D22\"), \"\\n  \")), mdx(\"p\", null, \"\\u5728\\u6211\\u7ECF\\u624B\\u7684\\u5B9E\\u4E60\\u751F\\u4E2D\\uFF0C\\u5B66\\u7684\\u6700\\u5FEB\\u6700\\u597D\\u7684\\u662F\\u6700\\u4F1A\\u7528\\u641C\\u7D22\\u7684\\u3002\\u5BF9\\u4E8E\\u641C\\u7D22\\u7684\\u90E8\\u5206\\uFF0C\\u5F88\\u591A\\u4E5F\\u662F\\u5F88\\u610F\\u5916\\u7684\\u4E0D\\u4E13\\u4E1A\\uFF0C\\u7ECF\\u5E38\\u770B\\u5230\\u521D\\u5B66\\u8005\\u7528\\u4E00\\u4E9B\\u9519\\u8BEF\\u7684\\u5173\\u952E\\u8BCD\\u641C\\u7D22\\uFF0C\\u6216\\u8005\\u5230\\u767E\\u5EA6\\u77E5\\u9053\\u4E0A\\u627E\\u95EE\\u9898\\uFF0C\\u70B9\\u5F00 10 \\u5E74\\u524D\\u7684\\u6587\\u7AE0\\u627E\\u89E3\\u51B3\\u65B9\\u6CD5\\uFF0C\\u4EE4\\u4EBA\\u5F88\\u65E0\\u8BED\\u3002\"), mdx(\"p\", null, \"\\u5176\\u5B9E\\u5B66\\u4E60\\u6280\\u672F\\u7684\\u65F6\\u5019\\uFF0C\\u76F4\\u63A5\\u5230\\u9879\\u76EE\\u7684\\u5B98\\u7F51\\u3001\\u6E90\\u4EE3\\u7801\\u7684GitHub\\u4E0A\\u627E\\u5B98\\u65B9\\u6587\\u6863\\u662F\\u6700\\u5FEB\\u6700\\u597D\\u7684\\uFF0C\\u5F88\\u5168\\u5F88\\u8BE6\\u7EC6\\u7684\\u4E00\\u624B\\u8D44\\u6599\\uFF0C\\u800C\\u4E14\\u73B0\\u5728\\u9644\\u5E26\\u4E2D\\u6587\\u6587\\u6863\\u7FFB\\u8BD1\\u8D8A\\u6765\\u8D8A\\u591A\\uFF0C\\u5230\\u5B98\\u7F51\\u76F4\\u63A5\\u627E get-start \\u76EE\\u5F55\\u4E86\\u89E3\\u5B89\\u88C5\\u548C\\u57FA\\u672C\\u7528\\u6CD5\\uFF0C\\u67E5\\u8D44\\u6599\\u7684\\u65F6\\u5019\\u627E APIs \\u6216\\u8005 Docs \\u76EE\\u5F55\\uFF0C\\u8FD9\\u4E9B\\u57FA\\u672C\\u4E0A\\u80FD\\u591F\\u4FDD\\u8BC1\\u5F88\\u597D\\u7684\\u4E0A\\u624B\\u3002\"), mdx(\"p\", null, \"\\u6709\\u95EE\\u9898\\u7684\\u65F6\\u5019\\uFF0C\\u65E0\\u8BBA\\u662F bing\\u3001google\\uFF0C\\u90FD\\u4F1A\\u663E\\u793A\\u641C\\u7D22\\u6765\\u6E90\\u548C\\u65F6\\u95F4\\uFF0C\\u6311\\u9009 Stack Overflow\\uFF0Cgithub\\uFF0Cmedium\\uFF0Csegmentfault\\uFF0Ccsdn\\uFF0C\\u7B80\\u4E66\\uFF0C\\u77E5\\u4E4E\\u7B49\\uFF0C\\u7136\\u540E\\u770B\\u4E0B\\u6700\\u8FD1\\u4E00\\u4E24\\u5E74\\u7684\\u7B54\\u6848\\uFF0C\\u57FA\\u672C\\u4E0A\\u90FD\\u80FD\\u89E3\\u51B3\\u5927\\u90E8\\u5206\\u7684\\u95EE\\u9898\\u3002\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"\\u6709\\u6761\\u4EF6\\u7684\\u8E29\\u68AF\\u5B50\\u53BB google\\uFF0C\\u6CA1\\u6761\\u4EF6\\u7684\\u77E5\\u9053\\u5230 bing/sogou \\u4E0A\\uFF0C\\u4E0D\\u662F\\u8BF4 baidu \\u6CA1\\u529E\\u6CD5\\u89E3\\u51B3\\u95EE\\u9898\\uFF0C\\u800C\\u662F\\u5207\\u8EAB\\u4F53\\u4F1A\\u5230\\u9047\\u5230\\u5F88\\u591A\\u6B21 baidu \\u7FFB\\u4E09\\u9875\\u6CA1\\u6709\\u4E00\\u4E2A\\u7ED3\\u679C\\uFF0C\\u4F46\\u662F Google \\u7B2C\\u4E00\\u6761\\u5C31\\u662F\\u7B54\\u6848\\uFF0C\\u5B66\\u4F1A\\u627E\\u5230\\u8D28\\u91CF\\u9AD8\\u7684\\u5730\\u65B9\\u5E2E\\u81EA\\u5DF1\\u89E3\\u51B3\\u95EE\\u9898\\u3002\")), mdx(\"h3\", null, \"4\\u3001\\u9879\\u76EE\\u5BF9\\u63A5\"), mdx(\"p\", null, \"\\u5982\\u679C\\u4F60\\u8981\\u63A5\\u624B\\u53E6\\u4E00\\u4E2A\\u4EBA\\u7684\\u9879\\u76EE\\uFF0C\\u6216\\u8005\\u5982\\u679C\\u4F60\\u8981\\u7BA1\\u63A7\\u53E6\\u4E00\\u4E2A\\u4EBA\\u7684\\u9879\\u76EE\\uFF0C\\u6216\\u8005\\u6BD4\\u8F83\\u591A\\u7684\\u662F\\u4E4B\\u524D\\u5F00\\u53D1\\u7684\\u67D0\\u4E2A\\u6A21\\u5757\\u4EA4\\u7ED9\\u4F60\\u505A\\uFF0C\\u4F60\\u5E94\\u8BE5\\u600E\\u4E48\\u4E0A\\u624B\\uFF1F\\u4E00\\u822C\\u65B0\\u624B\\u53EF\\u80FD\\u5C31\\u5F00\\u59CB\\u4ECE\\u9879\\u76EE\\u5165\\u53E3\\u51FD\\u6570\\u5F00\\u59CB\\u770B\\u8D77\\u4E86\\uFF0C\\u5982\\u679C\\u662F\\u9879\\u76EE\\u4EA4\\u63A5\\uFF0C\\u53EF\\u80FD\\u5C31\\u5F00\\u59CB\\u4ECE\\u5934\\u5230\\u5C3E\\u95EE\\u53E6\\u4E00\\u4E2A\\u4EBA\\u8FC7\\u4EE3\\u7801\\u548C\\u4E1A\\u52A1\\u4E86\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u6837\\u505A\\u6CA1\\u95EE\\u9898\\uFF0C\\u4F46\\u662F\\u4E25\\u683C\\u70B9\\u8FD9\\u6837\\u4F1A\\u88AB\\u9A82\\u7684\\uFF0C\\u56E0\\u4E3A\\u6BD4\\u4E1A\\u52A1\\u903B\\u8F91\\u66F4\\u91CD\\u8981\\u7684\\u662F\\u8FD9\\u4E2A\\u9879\\u76EE\\u7684\\u76EE\\u6807\\u3001\\u9636\\u6BB5\\u76EE\\u6807\\u3001\\u73B0\\u5728\\u7684\\u72B6\\u6001\\uFF0C\\u8FD8\\u6709\\u5F53\\u524D\\u7684\\u9A8C\\u6536\\u548C\\u4EA4\\u4ED8\\uFF0C\\u6CA1\\u9519\\uFF0C\\u505A\\u4E86\\u4E00\\u534A\\u7684\\u9879\\u76EE\\u4ECB\\u5165\\u65B0\\u4EBA\\u4E5F\\u9700\\u8981\\u4EA4\\u4ED8\\u7684\\u6982\\u5FF5\\u3002\"), mdx(\"p\", null, \"\\u7B2C\\u4E00\\u65F6\\u95F4\\u5E94\\u8BE5\\u662F\\u4EA4\\u63A5\\u8FD9\\u4E2A\\u9879\\u76EE\\u76EE\\u524D\\u662F\\u4EC0\\u4E48\\u72B6\\u6001\\uFF0C\\u56E0\\u4E3A\\u4EA4\\u63A5\\u4E0D\\u4EC5\\u4EC5\\u662F\\u4EE3\\u7801\\uFF0C\\u8FD8\\u6709\\u8C01\\u80CC\\u9505\\u7684\\u95EE\\u9898\\uFF0C\\u65B0\\u624B\\u63A5\\u624B\\u4E00\\u4E2A\\u9879\\u76EE\\u4E4B\\u540E\\uFF0C\\u51FA\\u73B0\\u95EE\\u9898\\u6700\\u591A\\u7684\\u53CD\\u9988\\u662F\\uFF0C\\u8FD9\\u662F\\u4E0A\\u4E00\\u4E2A\\u4EBA\\u7684 BUG\\uFF0C\\u4E0D\\u662F\\u6211\\u7684\\u95EE\\u9898\\u3002\", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \" \\u4E0D\\u597D\\u610F\\u601D\\uFF0C\\u4EA4\\u63A5\\u4E4B\\u540E\\uFF0C\\u5168\\u90FD\\u662F\\u4F60\\u7684\\u95EE\\u9898\\u4E86\\u3002\")), mdx(\"p\", null, \"\\u6BD4\\u5982\\u4E0A\\u4E00\\u4E2A\\u4EBA\\u8BF4\\u9879\\u76EE\\u5DF2\\u7ECF\\u628A A\\u3001B\\u3001C \\u9700\\u6C42\\u90FD\\u5B8C\\u6210\\u4E86\\uFF0C\\u903B\\u8F91\\u4E0A\\u6CA1\\u95EE\\u9898\\uFF0C\\u7136\\u540E\\u4F60\\u8DDF\\u7740\\u770B\\u4E86\\u8FD9\\u5757\\u7684\\u4E1A\\u52A1\\uFF0C\\u867D\\u7136\\u8FD8\\u6CA1\\u4E0A\\u7EBF\\u3001\\u6CA1\\u6D4B\\u8BD5\\u3001\\u6CA1\\u4EA7\\u51FA\\uFF0C\\u4F46\\u662F\\u770B\\u7740\\u903B\\u8F91\\u6CA1\\u95EE\\u9898\\uFF0C\\u6BD5\\u7ADF\\u4ED6\\u8BF4\\u90FD\\u5B8C\\u4E86\\uFF0C\\u7136\\u540E\\u8FD9\\u5757\\u7B97\\u4EA4\\u63A5\\u5B8C\\u3002\\u8FC7\\u4E24\\u5929\\u5F00\\u59CB\\u7740\\u624B\\u6DF1\\u5165\\u8FDB\\u4E00\\u6B65\\u5F00\\u53D1\\uFF0C\\u53D1\\u73B0\\u795E\\u5751\\u5F88\\u591A\\uFF0C\\u8FDB\\u5EA6\\u5728\\u8FD9\\u91CC\\u5361\\u4F4F\\u4E86\\uFF0C\\u8FD9\\u7B97\\u662F\\u4F60\\u81EA\\u5DF1\\u7684\\u8FDB\\u5EA6\\u5361\\u70B9\\u95EE\\u9898\\u4E86\\u3002\"), mdx(\"p\", null, \"\\u6240\\u4EE5\\u63A5\\u624B\\u522B\\u4EBA\\u7684\\u9879\\u76EE\\uFF0C\\u6216\\u8005\\u5C06\\u9879\\u76EE\\u4EA4\\u7ED9\\u522B\\u4EBA\\uFF0C\\u7B2C\\u4E00\\u4E2A\\u6982\\u5FF5\\u662F\\u4EA4\\u4ED8\\u548C\\u9A8C\\u6536\\uFF0C\\u6BD5\\u7ADF\\u8FD9\\u6D89\\u53CA\\u5230\\u5BF9\\u9879\\u76EE\\u8D1F\\u8D23\\u7684\\u95EE\\u9898\\uFF0C\\u5176\\u6B21\\u624D\\u662F\\u5177\\u4F53\\u7684\\u4E1A\\u52A1\\u903B\\u8F91\\u548C\\u4EE3\\u7801\\uFF0C\\u867D\\u7136\\u9700\\u8981\\u82B1\\u66F4\\u591A\\u65F6\\u95F4\\u3002\"), mdx(\"h3\", null, \"5\\u3001\\u6280\\u80FD\\u7684\\u65B9\\u6CD5\\u95EE\\u9898\"), mdx(\"p\", null, \"\\u5B66\\u4E60\\u7F16\\u7A0B\\u3001\\u4EE3\\u7801\\uFF0C\\u51E0\\u4E4E\\u6CA1\\u529E\\u6CD5\\u7EBF\\u6027\\u7684\\u63D0\\u9AD8\\u81EA\\u5DF1\\uFF0C\\u6CA1\\u529E\\u6CD5\\u50CF\\u4E66\\u672C\\u4F3C\\u7684\\uFF0C\\u7B2C\\u4E00\\u7AE0\\u53D8\\u91CF\\uFF0C\\u7B2C\\u4E8C\\u7AE0\\u8BED\\u53E5\\u3002\\u8FD9\\u6837\\u7684\\u63D0\\u5347\\u65B9\\u6CD5\\u5BF9\\u4E8E\\u5927\\u90E8\\u5206\\u4EBA\\u5C31\\u662F\\u6CA1\\u7528\\u7684\\uFF0C\\u56E0\\u4E3A\\u8FD9\\u4E2A\\u5C31\\u50CF\\u662F\\u6559\\u4F60\\u600E\\u4E48\\u5E72\\u519C\\u6D3B\\uFF0C\\u7406\\u8BBA\\u77E5\\u8BC6\\u5F88\\u597D\\uFF0C\\u4F46\\u662F\\u4F60\\u82B1\\u4E86\\u4E00\\u4E2A\\u6708\\u770B\\u4E66\\uFF0C\\u771F\\u5B9E\\u81EA\\u5DF1\\u4E0A\\u624B\\u3001\\u770B\\u522B\\u4EBA\\u7684\\u4EE3\\u7801\\u5B9E\\u8DF5\\u3001\\u770B\\u89C6\\u9891\\u7B49\\u90FD\\u80FD\\u628A\\u4E00\\u5C0F\\u65F6\\u7684\\u7406\\u8BBA\\u7528\\u4E94\\u5206\\u949F\\u6F14\\u793A\\u6E05\\u695A\\u3002\\u77E5\\u8BC6\\u7406\\u8BBA\\u662F\\u7814\\u7A76\\uFF0C\\u624B\\u827A\\u6280\\u80FD\\u662F\\u4E0A\\u624B\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u4E5F\\u662F\\u6211\\u5EFA\\u8BAE\\u521D\\u5B66\\u8005\\u5148\\u4E0A\\u624B\\u518D\\u7406\\u89E3\\u7684\\u539F\\u56E0\\uFF0C\\u4F60\\u80FD\\u6539\\u4EE3\\u7801\\uFF0C\\u5C31\\u5F88\\u5BB9\\u6613\\u5199\\u4EE3\\u7801\\uFF0C\\u4EFF\\u7167\\u7740\\u628A\\u4EE3\\u7801\\u6539\\u6210\\u6EE1\\u8DB3\\u4E1A\\u52A1\\uFF0C\\u5C31\\u80FD\\u5F88\\u5BB9\\u6613\\u7684\\u81EA\\u5DF1\\u5199\\u4EE3\\u7801\\u5B8C\\u6210\\u53E6\\u4E00\\u4E2A\\u4EFB\\u52A1\\uFF0C\\u6162\\u6162\\u7684\\u5C31\\u80FD\\u4ECE\\u4E0A\\u5C42\\u7406\\u89E3\\u5E95\\u5C42\\u7684\\u4E1C\\u897F\\u3002\"), mdx(\"p\", null, \"\\u8FD9\\u662F\\u5F88\\u81EA\\u7136\\u7684\\u4E8B\\u60C5\\uFF0C\\u4E2A\\u4EBA\\u7684\\u6210\\u957F\\u4E5F\\u662F\\u8FD9\\u6837\\uFF0C\\u5148\\u770B\\u4EE3\\u7801\\u3001\\u6539\\u4EE3\\u7801\\u3001\\u5199\\u4EE3\\u7801\\u3001\\u51FA\\u73B0\\u95EE\\u9898\\u53BB\\u641C\\u7D22\\u3001\\u7136\\u540E\\u6C89\\u6DC0\\u6280\\u672F\\u603B\\u7ED3\\u6587\\u7AE0\\u3002\"), mdx(\"h3\", null, \"6\\u3001\\u7406\\u8BBA\\u91CD\\u8981\\u5417\\uFF1F\"), mdx(\"p\", null, \"\\u5F88\\u91CD\\u8981\\uFF01\\u4E0A\\u4E00\\u70B9\\u8BF4\\u4E86\\uFF0C\\u4E0D\\u8981\\u62B1\\u7740\\u4E66\\u5543\\uFF0C\\u56E0\\u4E3A\\u4ECE 0 \\u5B66\\u4E60\\u7406\\u8BBA\\u77E5\\u8BC6\\u5BF9\\u521D\\u5B66\\u8005\\u7684\\u63D0\\u9AD8\\u6548\\u7387\\u5F88\\u4F4E\\uFF0C\\u4F46\\u662F\\u5E76\\u4E0D\\u662F\\u8BF4\\u7406\\u8BBA\\u4E0D\\u91CD\\u8981\\u3002\\u5728\\u5E73\\u65F6\\u7684\\u7F16\\u7A0B\\u4E2D\\uFF0C80% \\u7684\\u65F6\\u5019\\u662F\\u4E1A\\u52A1\\uFF0C\\u4E5F\\u5C31\\u662F\\u89E3\\u51B3\\u95EE\\u9898\\u7684\\u80FD\\u529B\\uFF0C\\u4F46\\u662F\\u8FD8\\u6709 20% \\u7684\\u662F \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"\\u66F4\\u597D\"), \" \\u7684\\u89E3\\u51B3\\u95EE\\u9898\\u7684\\u80FD\\u529B\\uFF0C\\u8FD9\\u4E5F\\u662F\\u4F60\\u6BD4\\u522B\\u4EBA\\u66F4\\u597D\\u7684\\u4EF7\\u503C\\u6700\\u5927\\u5316\\u7684\\u5730\\u65B9\\u3002\"), mdx(\"p\", null, \"\\u7B97\\u6CD5\\u7406\\u8BBA\\u3001\\u6570\\u636E\\u5E93\\u7406\\u8BBA\\u3001\\u7F51\\u7EDC\\u3001\\u591A\\u7EBF\\u7A0B\\u3001\\u6D88\\u606F\\u961F\\u5217\\u3001\\u67B6\\u6784\\u7B49\\uFF0C\\u8FD9\\u4E9B\\u4E1C\\u897F\\u90FD\\u662F\\u5F88\\u7406\\u8BBA\\u7684\\u4E1C\\u897F\\uFF0C\\u5982\\u679C\\u4F60\\u4E0D\\u77E5\\u9053\\u8FD9\\u4E9B\\uFF0C\\u5728\\u9047\\u5230\\u7684\\u65F6\\u5019\\u5C31\\u4F1A\\u662F\\u4E00\\u4E2A\\u74F6\\u9888\\u3002\\u8FD9\\u4E5F\\u4E0D\\u662F\\u9047\\u5230\\u5C31\\u80FD\\u641C\\u4E24\\u4E09\\u4E0B\\u5C31\\u80FD\\u61C2\\u5F97\\u7684\\u4E1C\\u897F\\u3002\"), mdx(\"p\", null, \"\\u6BD4\\u5982\\u5904\\u7406\\u4E00\\u4E2A\\u5927\\u6570\\u7EC4\\u7684\\u6392\\u5E8F\\uFF0C\\u7EDF\\u8BA1\\u5168\\u56FD\\u4EBA\\u53E3\\u6570\\u636E\\u7684\\u6392\\u5E8F\\uFF0C\\u6570\\u636E\\u91CF\\u7EA7\\u5728 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"10^9\"), \"\\uFF0C\\u5982\\u679C\\u4F7F\\u7528\\u5192\\u6CE1\\u6392\\u5E8F\\u7684 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(n^2)\"), \" \\u590D\\u6742\\u5EA6\\u9700\\u8981 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"n^18\"), \" \\u6B21\\u8FD0\\u7B97\\uFF0C\\u5728\\u666E\\u901A\\u8BA1\\u7B97\\u673A\\u4E0A(\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"10^9 flops\"), \")\\u9700\\u8981\\u81F3\\u5C11 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"10^9 \\u79D2 = 30 \\u5E74\"), \" \\u624D\\u80FD\\u89E3\\u51B3\\uFF08\\u4EC5\\u8003\\u8651\\u7B97\\u529B\\uFF09\\uFF0C\\u800C\\u4F7F\\u7528\\u5F52\\u5E76\\u6392\\u5E8F \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"O(nlogn)\"), \" \\u53EA\\u9700\\u8981 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"30 \\xD7 10^9\"), \" \\u6B21\\u8FD0\\u7B97\\uFF0C\\u666E\\u901A\\u8BA1\\u7B97\\u673A\\u53EA\\u9700\\u8981 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"30\\u79D2\"), \" \\u5C31\\u80FD\\u89E3\\u51B3\\u3002\"), mdx(\"p\", null, \"\\u6240\\u4EE5\\u5F3A\\u70C8\\u5EFA\\u8BAE\\u628A\\u7A7A\\u95F2\\u65F6\\u95F4\\u653E\\u5230\\u8FD9\\u4E9B\\u4E1C\\u897F\\u4E0A\\u3002\"), mdx(\"h3\", null, \"7\\u3001\\u4E0D\\u4E60\\u60EF\\u56E2\\u961F\\u534F\\u4F5C\"), mdx(\"p\", null, \"\\u56E2\\u961F\\u534F\\u4F5C\\u8FD9\\u4E2A\\u6D89\\u53CA\\u5230\\u6BD4\\u8F83\\u5927\\u7684\\u8303\\u56F4\\uFF0C\\u6BD4\\u5982\\u6CE8\\u91CA\\u3001\\u6587\\u6863\\u3001Git\\u3001\\u4EA4\\u63A5\\u3001CodeReview \\u7B49\\u3002\"), mdx(\"p\", null, \"\\u65B0\\u624B\\u5BF9\\u4E1A\\u52A1\\u548C\\u4EA4\\u6D41\\u4E0D\\u662F\\u5F88\\u719F\\u6089\\uFF0C\\u6240\\u4EE5\\u5F88\\u5927\\u7684\\u6CE8\\u610F\\u529B\\u90FD\\u5728\\u5B8C\\u6210\\u4EFB\\u52A1\\u4E0A\\u4E86\\uFF0C\\u6240\\u4EE5\\u5468\\u56F4\\u652F\\u6301\\u80FD\\u529B\\u6CA1\\u6709\\u90A3\\u4E48\\u91CD\\u89C6\\uFF0C\\u800C\\u8FD9\\u4E9B\\u5728\\u56E2\\u961F\\u91CC\\u8FD8\\u662F\\u6BD4\\u8F83\\u91CD\\u8981\\u7684\\u3002\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6CE8\\u91CA: \\u56E2\\u961F\\u5DE5\\u4F5C\\u590D\\u6742\\u5EA6\\u66F4\\u9AD8\\uFF0C\\u4E00\\u4E9B\\u5173\\u952E\\u70B9\\u7684\\u6CE8\\u91CA\\u5BF9\\u522B\\u4EBA\\u7684\\u9605\\u8BFB\\u80FD\\u8D77\\u5F88\\u5927\\u7684\\u5E2E\\u52A9\\u3002\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u6587\\u6863: \\u5F88\\u591A\\u4EBA\\u4E0D\\u4E60\\u60EF\\u5199\\u6587\\u6863\\uFF0C\\u4F46\\u662F\\u4E00\\u4E2A\\u9879\\u76EE\\u9700\\u8981\\u544A\\u8BC9\\u522B\\u4EBA\\u80CC\\u666F\\u3001\\u76EE\\u7684\\u3001\\u72B6\\u6001\\u3001\\u542F\\u52A8\\u3001\\u90E8\\u7F72\\u3001\\u8C03\\u8BD5\\u7B49\\uFF0C\\u65B9\\u4FBF\\u5176\\u4ED6\\u4EBA\\u4ECB\\u5165\\u3002\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Git: \\u8FD9\\u4E2A\\u7B97\\u662F\\u5FC5\\u5907\\u6280\\u80FD\\u4E86\\u3002\\u8981\\u8BF4\\u7684\\u662F workflow \\u7684\\u80FD\\u529B\\uFF0C\\u6BD4\\u5982\\u5FC5\\u987B\\u4FDD\\u8BC1\\u6BCF\\u4E2A\\u4E3B\\u5206\\u652F\\u90FD\\u662F\\u80FD\\u7F16\\u8BD1\\u7684\\u7248\\u672C\\uFF0C\\u4FDD\\u8BC1\\u6BCF\\u6B21\\u63D0\\u4EA4\\u90FD\\u6709\\u8BF4\\u660E\\u6539\\u52A8\\u7684\\u90E8\\u5206\\u3002\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"CodeReview: \\u65E0\\u8BBA\\u5BF9\\u4E8E\\u521D\\u5B66\\u8005\\u8FD8\\u662F\\u5230\\u4E00\\u4E2A\\u65B0\\u73AF\\u5883\\uFF0C\\u90FD\\u8981\\u8BA9\\u5176\\u4ED6\\u4EBA Code Review \\u4E0B\\uFF0C\\u4FDD\\u8BC1\\u4EE3\\u7801\\u7684\\u89C4\\u8303\\u662F\\u7B26\\u5408\\u56E2\\u961F\\u7684\\u3002\")), mdx(\"h3\", null, \"8\\u3001\\u5174\\u8DA3\\u548C\\u5929\\u8D4B\"), mdx(\"p\", null, \"\\u5F88\\u4E0D\\u60F3\\u8BF4\\uFF0C\\u4F46\\u662F\\u8FD8\\u662F\\u8981\\u8BF4\\uFF0C\\u5982\\u679C\\u4F60\\u4E0D\\u662F\\u5BF9\\u7F16\\u7A0B\\u3001\\u5BF9\\u4E1A\\u52A1\\u6709\\u5F88\\u5927\\u7684\\u5174\\u8DA3\\uFF0C\\u5F88\\u96BE\\u5728\\u7F16\\u7A0B\\u7684\\u80FD\\u529B\\u4E0A\\u6709\\u5F88\\u5927\\u7684\\u7CBE\\u8FDB\\u3002\\u56E0\\u4E3A\\u9700\\u8981\\u4F60\\u7E41\\u590D\\u7684\\u7EC3\\u4E60\\u3001\\u9700\\u8981\\u4F60\\u82B1\\u8D39\\u5F88\\u5927\\u4E00\\u90E8\\u5206\\u81EA\\u5DF1\\u7684\\u65F6\\u95F4\\uFF0C\\u4F60\\u4E0D\\u559C\\u6B22\\u7684\\u4E8B\\u60C5\\u5F88\\u96BE\\u575A\\u6301\\u4E0B\\u53BB\\u3002\"), mdx(\"p\", null, \"\\u8FD8\\u9047\\u5230\\u4E86\\u5F88\\u591A\\u4EBA\\uFF0C\\u82B1\\u8D39\\u4E86\\u5F88\\u591A\\u7684\\u8010\\u5FC3\\u6559\\u4ED6\\uFF0C\\u4F46\\u662F\\u603B\\u662F\\u6CA1\\u529E\\u6CD5\\u7406\\u89E3\\uFF0C\\u5750\\u5728\\u529E\\u516C\\u5BA4\\u7684\\u6548\\u7387\\u5C31\\u662F\\u51FA\\u5947\\u7684\\u4F4E\\uFF0C\\u5F88\\u7528\\u529F\\u52AA\\u529B\\u7684\\u4E0A\\u73ED\\uFF0C\\u57CB\\u6028\\u81EA\\u5DF1\\u4E3A\\u5565\\u5B66\\u4E0D\\u4F1A\\uFF0C\\u5176\\u5B9E\\u7B54\\u6848\\u5C31\\u662F\\u771F\\u7684\\u4E0D\\u5408\\u9002\\u3002\"), mdx(\"h2\", null, \"\\u603B\\u7ED3\"), mdx(\"p\", null, \"\\u5BF9\\u4E8E\\u5F88\\u591A\\u4EBA\\u7F16\\u7A0B\\u662F\\u4EBA\\u751F\\u7684\\u5F88\\u91CD\\u8981\\u7684\\u4E8B\\u4E1A\\uFF0C\\u53EF\\u80FD\\u8981\\u6301\\u7EED\\u5341\\u5E74\\u3001\\u4E8C\\u5341\\u5E74\\u3001\\u4E09\\u5341\\u5E74~\\uFF0C\\u600E\\u4E48\\u66F4\\u597D\\u7684\\u5B8C\\u6210\\u4EFB\\u52A1\\u5C31\\u662F\\u4EF7\\u503C\\u7684\\u4F53\\u73B0\\uFF0C\\u600E\\u4E48\\u5B8C\\u6210\\u4EFB\\u52A1\\u3001\\u600E\\u4E48\\u63D0\\u9AD8\\u80FD\\u529B\\u3001\\u600E\\u4E48\\u5B9E\\u73B0\\u4EF7\\u503C\\u3001\\u600E\\u4E48\\u8BA9\\u81EA\\u5DF1\\u66F4\\u597D\\u7684\\u5728\\u73B0\\u5B9E\\u751F\\u6D3B\\u5B58\\u5728\\uFF0C\\u662F\\u5F88\\u91CD\\u8981\\u7684\\u3002\\u597D\\u5728\\u6709\\u5F88\\u591A\\u4EBA\\u8D70\\u5728\\u8FD9\\u6761\\u8DEF\\u4E0A\\uFF0C\\u597D\\u5728\\u53EA\\u8981\\u52AA\\u529B\\u8FD8\\u662F\\u4F1A\\u6709\\u5F88\\u597D\\u7684\\u7ED3\\u679C\\u3002\"), mdx(\"hr\", null), mdx(\"br\", null), mdx(\"div\", null, mdx(\"div\", {\n    style: {\n      textAlign: 'center'\n    }\n  }, \"\\u66F4\\u591A\\u7684\\u8BD5\\u70BC\\u8BA9\\u81EA\\u5DF1\\u53D8\\u5F97\\u66F4\\u52A0\\u5F3A\\u5927\\u3002\")), mdx(\"div\", null, mdx(\"div\", {\n    style: {\n      textAlign: 'right'\n    }\n  }, \"\\u2014\\u2014 UBUG\")), mdx(\"hr\", null));\n}\n;\nMDXContent.isMDXComponent = true;"}}}}